Déployez et invoquez des fonctions durables Lambda avec le AWS CLI - AWS Lambda

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.

Déployez et invoquez des fonctions durables Lambda avec le AWS CLI

Utilisez le AWS CLI pour créer et déployer des fonctions Lambda durables avec des commandes impératives. Cette approche vous permet de contrôler directement chaque étape du processus de déploiement.

Conditions préalables

  • Installez et configurez l’ AWS CLI. Pour obtenir des instructions, reportez-vous à la section Installation du AWS CLI.

  • Créez un package de déploiement avec votre code de fonction et le SDK d'exécution durable.

  • Créez un rôle d'exécution IAM avec des autorisations de point de contrôle.

Créer le rôle d’exécution

Créez un rôle IAM avec des autorisations pour l'exécution Lambda de base et les opérations de point de contrôle.

Pour créer le rôle d'exécution
  1. Créez un document de politique de confiance qui permet à Lambda d'assumer le rôle. Enregistrez ceci sous le nom trust-policy.json :

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Créez le rôle :

    aws iam create-role \ --role-name durable-function-role \ --assume-role-policy-document file://trust-policy.json
  3. Joignez la politique d'exécution de base :

    aws iam attach-role-policy \ --role-name durable-function-role \ --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
  4. Créez une politique pour les opérations aux points de contrôle. Enregistrez ceci sous le nom checkpoint-policy.json :

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:CheckpointDurableExecutions", "lambda:GetDurableExecutionState" ], "Resource": "arn:aws:lambda:REGION:ACCOUNT_ID:function:myDurableFunction" } ] }
  5. Créez et joignez la politique des points de contrôle :

    aws iam create-policy \ --policy-name durable-checkpoint-policy \ --policy-document file://checkpoint-policy.json aws iam attach-role-policy \ --role-name durable-function-role \ --policy-arn arn:aws:iam::ACCOUNT_ID:policy/durable-checkpoint-policy

Créez une fonction durable

Créez votre fonction durable avec le --durable-config paramètre.

Pour créer une fonction durable
  1. Package de votre code de fonction avec les dépendances dans un fichier .zip :

    zip -r function.zip index.mjs node_modules/
  2. Créez la fonction avec l'exécution durable activée :

    aws lambda create-function \ --function-name myDurableFunction \ --runtime nodejs22.x \ --role arn:aws:iam::ACCOUNT_ID:role/durable-function-role \ --handler index.handler \ --zip-file fileb://function.zip \ --durable-config '{"ExecutionTimeout": 10, "RetentionPeriodInDays":1}'
Note

Vous ne pouvez activer l'exécution durable que lors de la création de la fonction. Vous ne pouvez pas l'activer sur les fonctions existantes.

Publier une version

Les fonctions durables nécessitent un ARN qualifié (avec version ou alias) pour être invoquées. Publiez une version de votre fonction :

aws lambda publish-version \ --function-name myDurableFunction \ --description "Initial version"

La commande renvoie l'ARN de la version. Notez le numéro de version (par exemple,:1) à la fin de l'ARN.

Créez éventuellement un alias pointant vers la version :

aws lambda create-alias \ --function-name myDurableFunction \ --name prod \ --function-version 1

Invoquez la fonction durable

Appelez votre fonction durable à l'aide de l'ARN qualifié (version ou alias).

Invocation synchrone

Pour les exécutions qui se terminent en 15 minutes, utilisez l'invocation synchrone :

aws lambda invoke \ --function-name myDurableFunction:1 \ --payload '{"orderId": "order-12345"}' \ --cli-binary-format raw-in-base64-out \ response.json

Ou en utilisant un alias :

aws lambda invoke \ --function-name myDurableFunction:prod \ --payload '{"orderId": "order-12345"}' \ --cli-binary-format raw-in-base64-out \ response.json
invocation asynchrone

Pour les exécutions de longue durée, utilisez l'invocation asynchrone :

aws lambda invoke \ --function-name myDurableFunction:prod \ --invocation-type Event \ --payload '{"orderId": "order-12345"}' \ --cli-binary-format raw-in-base64-out \ response.json

En cas d'invocation asynchrone, Lambda revient immédiatement. La fonction continue de s'exécuter en arrière-plan.

Gérez des exécutions durables

Utilisez les commandes suivantes pour gérer et surveiller les exécutions de fonctions durables.

Lister les exécutions

Répertoriez toutes les exécutions d'une fonction durable :

aws lambda list-durable-executions \ --function-name myDurableFunction:prod
Obtenir les détails de l'exécution

Obtenez des informations sur une exécution spécifique :

aws lambda get-durable-execution \ --function-name myDurableFunction:prod \ --execution-id exec-abc123
Obtenir l'historique des exécutions

Consultez l'historique des points de contrôle d'une exécution :

aws lambda get-durable-execution-history \ --function-name myDurableFunction:prod \ --execution-id exec-abc123
Arrêter une exécution

Arrêtez une exécution durable en cours :

aws lambda stop-durable-execution \ --function-name myDurableFunction:prod \ --execution-id exec-abc123

Mettre à jour le code de la fonction

Mettez à jour votre code de fonction durable et publiez une nouvelle version :

Pour mettre à jour et publier une nouvelle version
  1. Mettez à jour le code de fonction :

    aws lambda update-function-code \ --function-name myDurableFunction \ --zip-file fileb://function.zip
  2. Attendez que la mise à jour soit terminée :

    aws lambda wait function-updated \ --function-name myDurableFunction
  3. Publiez une nouvelle version :

    aws lambda publish-version \ --function-name myDurableFunction \ --description "Updated order processing logic"
  4. Mettez à jour l'alias pour qu'il pointe vers la nouvelle version :

    aws lambda update-alias \ --function-name myDurableFunction \ --name prod \ --function-version 2
Important

Les exécutions en cours continuent à utiliser la version avec laquelle elles ont débuté. Les nouveaux appels utilisent la version mise à jour de l'alias.

Affichage des journaux de fonctions

Consultez les journaux de votre fonction durable dans CloudWatch Logs :

aws logs tail /aws/lambda/myDurableFunction --follow

Filtrez les journaux pour une exécution spécifique :

aws logs filter-log-events \ --log-group-name /aws/lambda/myDurableFunction \ --filter-pattern "exec-abc123"

nettoyer des ressources ;

Supprimez votre fonction durable et les ressources associées :

# Delete the function aws lambda delete-function --function-name myDurableFunction # Delete the IAM role policies aws iam detach-role-policy \ --role-name durable-function-role \ --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole aws iam detach-role-policy \ --role-name durable-function-role \ --policy-arn arn:aws:iam::ACCOUNT_ID:policy/durable-checkpoint-policy aws iam delete-policy \ --policy-arn arn:aws:iam::ACCOUNT_ID:policy/durable-checkpoint-policy # Delete the role aws iam delete-role --role-name durable-function-role

Étapes suivantes

Après avoir déployé votre fonction durable avec AWS CLI :

  • Surveillez les exécutions à l'aide list-durable-executions des get-durable-execution commandes et

  • Afficher les opérations des points de contrôle dans les événements de AWS CloudTrail données

  • Configurer des CloudWatch alarmes en cas d'échec d'exécution ou d'exécutions de longue durée

  • Automatisez les déploiements à l'aide de scripts shell ou CI/CD de pipelines

Pour plus d'informations sur AWS CLI les commandes pour Lambda, consultez la référence des AWS CLI commandes.