View a markdown version of this page

AWS Lambda référence des actions 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 des actions 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 :

  • Déploiements linéaires et canariens pour le transfert du trafic

  • Déploiements simultanés

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 exempleMyLambdaFunction.

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

FunctionAlias

Obligatoire : non

L'alias de la fonction que vous avez créée dans Lambda et qui est la fonction à déployer, par exemplelive. L'alias doit exister et être associé à une version lorsque l'exécution de l'action démarre. (Ce sera la version cible de restauration.)

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

PublishedTargetVersion

Obligatoire : non

La version de la fonction Lambda vers laquelle vous souhaitez déployer FunctionAlias. Il peut s'agir de variables de pipeline ou de niveau d'action, telles que#{variables.lambdaTargetVersion}. La version doit être publiée lorsque l'exécution de l'action commence.

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

DeployStrategy

Obligatoire : Non (par défautAllAtOnce)

Détermine le débit adopté par l'action de déploiement Lambda pour déplacer 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 -

    Déplace tout le trafic vers les fonctions Lambda mises à jour en une seule fois.

    Si aucune valeur n'est spécifiée, la valeur par défaut est AllAtOnce.

  • Canary10Percent5Minutes- Déplace 10 % du trafic dès le premier incrément. Les 90 % restants sont déployés cinq minutes plus tard.

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

  • Linear10PercentEvery1Minute- Déplace 10 % du trafic toutes les minutes jusqu'à ce que tout le trafic soit modifié.

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

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

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

  • Disponible uniquement lorsque cela FunctionAlias est fourni.

Alarmes

Obligatoire : non

Liste de noms d'alarmes séparés par des virgules 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 ALARME.

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

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

Artefacts d'entrée

  • Nombre d'objets : 1

  • Description : fichiers fournis, le cas échéant, pour prendre en charge les actions de script pendant le 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 des variables.

FunctionVersion

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

Autorisations relatives à la politique de rôle 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, correctement définies pour un accès avec le moins de privilèges.

JSON
{ "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:us-east-1:111122223333:function:{{FunctionName}}", "arn:aws:lambda:us-east-1:111122223333:function:{{FunctionName}}:*" ] }, { "Sid": "StatementForCloudWatch", "Effect": "Allow", "Action": [ "cloudwatch:DescribeAlarms" ], "Resource": [ "arn:aws:cloudwatch:us-east-1:111122223333:alarm:{{AlarmNames}}" ] }, { "Sid": "StatementForLogs1", "Effect": "Allow", "Action": [ "logs:CreateLogGroup" ], "Resource": [ "arn:aws:logs:us-east-1:111122223333:log-group:/us-east-1/codepipeline/{{pipelineName}}", "arn:aws:logs:us-east-1:111122223333:log-group:/us-east-1/codepipeline/{{pipelineName}}:*" ] }, { "Sid": "StatementForLogs2", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-east-1:111122223333:log-group:/us-east-1/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.