AWS Lambda référence d'action de déploiement - AWS CodePipeline

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

AWS Lambda référence d'action de déploiement

Vous utilisez une action de AWS Lambda déploiement pour gérer le déploiement de votre code d'application pour votre déploiement sans serveur. Vous pouvez déployer une fonction et utiliser des stratégies de déploiement pour le déploiement du trafic comme suit :

  • Canary et déploiements linéaires pour le transfert du trafic

  • Déploiements en une seule fois

Note

Cette action n'est prise en charge que pour les pipelines de type V2.

Type d'action

  • Catégorie : Deploy

  • Propriétaire : AWS

  • Fournisseur : Lambda

  • Version : 1

Paramètres de configuration

FunctionName

Obligatoire : oui

Le nom de la fonction que vous avez créée dans Lambda, par exemple. MyLambdaFunction

Vous devez déjà avoir créé une version.

FunctionAlias

Obligatoire : non

Alias de la fonction que vous avez créée dans Lambda et sur laquelle vous souhaitez être déployée, par exemple. live L'alias doit exister et être associé à une version lorsque l'exécution de l'action commence. (Ce sera la version cible du rollback.)

S'il n'est pas fourni, l'action déploie l'artefact source vers une nouvelle version $LATEST et en crée une nouvelle. Dans ce cas d'utilisation, la stratégie de déploiement et les options de version cible ne sont pas disponibles.

PublishedTargetVersion

Obligatoire : non

Version de la fonction Lambda souhaitée pour le déploiement. FunctionAlias Il peut s'agir de variables de pipeline ou de niveau d'action, telles que#{variables.lambdaTargetVersion}. La version doit être publiée au début de l'exécution de l'action.

Obligatoire si aucun artefact d'entrée n'est fourni.

DeployStrategy

Obligatoire : Non (la valeur par défaut estAllAtOnce)

Détermine le taux adopté par l'action de déploiement Lambda pour transférer le trafic de la version d'origine de la fonction Lambda vers la nouvelle version pour. FunctionAlias Les stratégies de déploiement disponibles sont canariennes ou linéaires. Formats acceptés :

  • AllAtOnce -

    Transfère immédiatement tout le trafic vers les fonctions Lambda mises à jour.

    Si ce n'est pas spécifié, la valeur par défaut estAllAtOnce)

  • Canary10Percent5Minutes- Transfère 10 % du trafic au premier incrément. Les 90 % restants sont déployés 5 minutes plus tard.

    Les valeurs du pourcentage et des minutes peuvent être modifiées.

  • Linear10PercentEvery1Minute- Transfère 10 % du trafic chaque minute jusqu'à ce que tout le trafic soit transféré.

    Les valeurs du pourcentage et des minutes peuvent être modifiées.

Les considérations suivantes s'appliquent à ce champ :

  • Le temps d'attente total maximal est de 2 jours.

  • Disponible uniquement lorsque cela FunctionAliasest fourni.

Alertes

Obligatoire : non

Liste séparée par des virgules des noms d'alarme configurés pour le déploiement Lambda. Au maximum, 10 alarmes peuvent être ajoutées. L'action échoue lorsque les alarmes surveillées passent à l'état ALARM.

L'image suivante montre un exemple de page d'édition pour l'action.

La page d'action Modifier pour un nouveau pipeline avec l'action de déploiement Lambda

Artefacts d'entrée

  • Nombre d'objets : 1

  • Description : les fichiers fournis, le cas échéant, pour prendre en charge les actions du script lors du déploiement.

Artefacts de sortie

  • Nombre d'objets : 0

  • Description : les artefacts de sortie ne s'appliquent pas à ce type d'action.

Variables de sortie

Lorsque cette action est configurée, elle produit des variables qui peuvent être référencées par la configuration d'action d'une action en aval dans le pipeline. Cette action produit des variables qui peuvent être visualisées en tant que variables de sortie, même si l'action n'a pas d'espace de noms. Vous configurez une action avec un espace de noms pour rendre ces variables disponibles pour la configuration des actions en aval.

Pour de plus amples informations, veuillez consulter Référence aux variables.

FunctionVersion

La nouvelle version de la fonction Lambda qui a été déployée.

Autorisations relatives à la politique des rôles de service pour l'action de déploiement Lambda

Lors de l' CodePipeline exécution de l'action, le rôle de CodePipeline service nécessite les autorisations suivantes, définies de manière appropriée pour l'accès avec le moins de privilèges.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "StatementForLambda", "Effect": "Allow", "Action": [ "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:GetProvisionedConcurrencyConfig", "lambda:PublishVersion", "lambda:UpdateAlias", "lambda:UpdateFunctionCode" ], "Resource": [ "arn:aws:lambda:aws:{{customerAccountId}}:function:{{FunctionName}}", "arn:aws:lambda:aws:{{customerAccountId}}:function:{{FunctionName}}:*" ] }, { "Sid": "StatementForCloudWatch", "Effect": "Allow", "Action": [ "cloudwatch:DescribeAlarms" ], "Resource": [ "arn:aws:cloudwatch:aws:{{customerAccountId}}:alarm:{{AlarmNames}}" ] }, { "Sid": "StatementForLogs1", "Effect": "Allow", "Action": [ "logs:CreateLogGroup" ], "Resource": [ "arn:aws:logs:aws:{{customerAccountId}}:log-group:/aws/codepipeline/{{pipelineName}}", "arn:aws:logs:aws:{{customerAccountId}}:log-group:/aws/codepipeline/{{pipelineName}}:*" ] }, { "Sid": "StatementForLogs2", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:aws:{{customerAccountId}}:log-group:/aws/codepipeline/{{pipelineName}}:log-stream:*" ] } ] }

Déclaration d'action

YAML
name: Deploy actionTypeId: category: Deploy owner: AWS provider: Lambda version: '1' runOrder: 1 configuration: DeployStrategy: Canary10Percent5Minutes FunctionAlias: aliasV1 FunctionName: MyLambdaFunction outputArtifacts: [] inputArtifacts: - name: SourceArtifact region: us-east-1 namespace: DeployVariables
JSON
{ "name": "Deploy", "actionTypeId": { "category": "Deploy", "owner": "AWS", "provider": "Lambda", "version": "1" }, "runOrder": 1, "configuration": { "DeployStrategy": "Canary10Percent5Minutes", "FunctionAlias": "aliasV1", "FunctionName": "MyLambdaFunction" }, "outputArtifacts": [], "inputArtifacts": [ { "name": "SourceArtifact" } ], "region": "us-east-1", "namespace": "DeployVariables" },

Les ressources connexes suivantes peuvent s'avérer utiles dans le cadre de l'utilisation de cette action.