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 des fonctions durables Lambda avec l'infrastructure en tant que code
Vous pouvez déployer des fonctions durables Lambda à l'aide d'outils d'infrastructure en tant que code (IaC) tels que AWS CloudFormation AWS CDK, ou. AWS Serverless Application Model Ces outils vous permettent de définir votre fonction, votre rôle d'exécution et vos autorisations dans le code, ce qui rend les déploiements reproductibles et contrôlés par version.
Les trois outils vous obligent à :
Permettre une exécution durable de la fonction
Accorder des autorisations de point de contrôle au rôle d'exécution
Publier une version ou créer un alias (les fonctions durables nécessitent une qualification ARNs)
AWS CloudFormation
CloudFormation À utiliser pour définir votre fonction durable dans un modèle. L'exemple suivant crée une fonction durable dotée des autorisations requises.
AWSTemplateFormatVersion: '2010-09-09' Description: Lambda durable function example Resources: DurableFunctionRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: lambda.amazonaws.com Action: sts:AssumeRole ManagedPolicyArns: - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole Policies: - PolicyName: DurableExecutionPolicy PolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Action: - lambda:CheckpointDurableExecutions - lambda:GetDurableExecutionState Resource: !GetAtt DurableFunction.Arn DurableFunction: Type: AWS::Lambda::Function Properties: FunctionName: myDurableFunction Runtime: nodejs22.x Handler: index.handler Role: !GetAtt DurableFunctionRole.Arn Code: ZipFile: | // Your durable function code here export const handler = async (event, context) => { return { statusCode: 200 }; }; DurableConfig: ExecutionTimeout: 10 RetentionPeriodInDays: 1 DurableFunctionVersion: Type: AWS::Lambda::Version Properties: FunctionName: !Ref DurableFunction Description: Initial version DurableFunctionAlias: Type: AWS::Lambda::Alias Properties: FunctionName: !Ref DurableFunction FunctionVersion: !GetAtt DurableFunctionVersion.Version Name: prod Outputs: FunctionArn: Description: Durable function ARN Value: !GetAtt DurableFunction.Arn AliasArn: Description: Function alias ARN (use this for invocations) Value: !Ref DurableFunctionAlias
Pour déployer le modèle
aws cloudformation deploy \ --template-file template.yaml \ --stack-name my-durable-function-stack \ --capabilities CAPABILITY_IAM
AWS CDK
AWS CDK vous permet de définir l'infrastructure à l'aide de langages de programmation. Les exemples suivants montrent comment créer une fonction durable à l'aide TypeScript de Python.
Pour déployer la pile CDK
cdk deploy
AWS Serverless Application Model
AWS SAM simplifie les CloudFormation modèles pour les applications sans serveur. Le modèle suivant crée une fonction durable avec AWS SAM.
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: Lambda durable function with SAM Resources: DurableFunction: Type: AWS::Serverless::Function Properties: FunctionName: myDurableFunction Runtime: nodejs22.x Handler: index.handler CodeUri: ./src DurableConfig: ExecutionTimeout: 10 RetentionPeriodInDays: 1 Policies: - Version: '2012-10-17' Statement: - Effect: Allow Action: - lambda:CheckpointDurableExecutions - lambda:GetDurableExecutionState Resource: !Sub 'arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:${DurableFunction}' AutoPublishAlias: prod Outputs: FunctionArn: Description: Durable function ARN Value: !GetAtt DurableFunction.Arn AliasArn: Description: Function alias ARN (use this for invocations) Value: !Ref DurableFunction.Alias
Pour déployer le modèle SAM
sam build sam deploy --guided
Modèles de configuration courants
Quel que soit l'outil IaC que vous utilisez, suivez les modèles suivants pour des fonctions durables :
Permettre une exécution durable
Définition de la propriété DurableExecution.Enabled à true. Cette propriété n'est disponible que lors de la création de la fonction ; vous ne pouvez pas activer l'exécution durable sur les fonctions existantes.
Accorder des autorisations aux points de contrôle
Ajoutez lambda:CheckpointDurableExecutions et lambda:GetDurableExecutionState au rôle d'exécution. Étendez ces autorisations à l'ARN de la fonction spécifique.
Utiliser qualifié ARNs
Créez une version ou un alias pour votre fonction. Les fonctions durables nécessitent une qualification ARNs (avec version ou alias) pour être invoquées. Utilisez AutoPublishAlias AWS SAM ou créez des versions explicites dans CloudFormation et AWS CDK.
Dépendances de package
Incluez le SDK d'exécution durable dans votre package de déploiement. Pour Node.js, installez@aws/durable-execution-sdk-js. Pour Python, installezaws-durable-execution-sdk-python.
Étapes suivantes
Après avoir déployé votre fonction durable :
-
Testez votre fonction à l'aide de l'ARN qualifié (version ou alias)
-
Surveillez la progression de l'exécution dans la console Lambda sous l'onglet Exécutions durables
-
Afficher les opérations des points de contrôle dans les événements de AWS CloudTrail données
-
Consultez CloudWatch les journaux pour connaître le comportement des fonctions, des sorties et des rediffusions
Pour plus d'informations sur le déploiement de fonctions Lambda avec les outils IaC, voir :