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.
Runtimes pris en charge pour des fonctions durables
Des fonctions durables sont disponibles pour certains environnements d'exécution gérés et les images de conteneurs OCI pour une flexibilité accrue des versions d'exécution. Vous pouvez créer des fonctions durables pour Python Node.js, Java et C# (.NET) en utilisant des environnements d'exécution gérés directement dans la console ou par programmation via l'infrastructure en tant que code.
Runtimes gérés par Lambda
Les environnements d'exécution gérés suivants prennent en charge les fonctions durables lorsque vous créez des fonctions dans la console Lambda ou que vous utilisez le AWS CLI --durable-config '{"ExecutionTimeout": 3600, "RetentionPeriodInDays": 7}' paramètre with. Pour des informations complètes sur les environnements d'exécution Lambda, consultez la section Runtimes Lambda.
| Language | Environnement d’exécution |
|---|---|
| Node.js | nodejs22.x |
| Node.js | nodejs24.x |
| Python | python 3.13 |
| Python | python 3.14 |
| Java | java17 |
| Java | java21 |
| Java | java25 |
| C# (.NET) | dotnet 8 |
| C# (.NET) | dotnet10 |
Note
Les environnements d'exécution Lambda Node.js et Python incluent le SDK d'exécution durable pour les tests et le développement. Nous vous recommandons toutefois d'inclure le SDK dans votre package de déploiement pour la production. Cela garantit la cohérence des versions et évite les éventuelles mises à jour d'exécution qui pourraient affecter le comportement de votre fonction. Java et C# (.NET) étant des langages compilés, les environnements d'exécution Lambda Java et .NET n'incluent pas le SDK d'exécution durable. Il doit donc être inclus dans votre package de déploiement.
Node.js
Installez le SDK dans votre Node.js projet :
npm install @aws/durable-execution-sdk-js
Le SDK prend en charge JavaScript et. TypeScript Pour les TypeScript projets, le SDK inclut des définitions de type.
Python
Installez le SDK dans votre projet Python :
pip install aws-durable-execution-sdk-python
Le SDK Python utilise des méthodes synchrones et n'en a pas besoin. async/await
Java
Ajoutez une dépendance à pom.xml :
<dependency> <groupId>software.amazon.lambda.durable</groupId> <artifactId>aws-durable-execution-sdk-java</artifactId> <version>VERSION</version> </dependency>
Installez le SDK dans votre projet Java :
mvn install
Le SDK Java fournit des versions synchrones et asynchrones de chaque méthode.
C# (.NET)
Ajoutez le SDK à votre projet .NET :
dotnet add package Amazon.Lambda.DurableExecution
Le SDK .NET expose les opérations durables via. IDurableContext Votre gestionnaire reçoit l'enveloppe de service d'exécution durable et délègue àDurableFunction.WrapAsync. Chaque corps d'opération prend unCancellationToken.
Images de conteneurs
Vous pouvez utiliser des fonctions durables avec des images de conteneur pour prendre en charge des versions d'exécution supplémentaires ou des configurations d'exécution personnalisées. Les images de conteneur vous permettent d'utiliser des versions d'exécution non disponibles en tant que moteurs d'exécution gérés ou de personnaliser votre environnement d'exécution.
Pour créer une fonction durable à l'aide d'une image de conteneur :
Créer un Dockerfile basé sur une image de base Lambda
Installez le SDK d'exécution durable dans votre conteneur
Créez et transférez l'image du conteneur vers Amazon Elastic Container Registry
Créez la fonction Lambda à partir de l'image du conteneur avec l'exécution durable activée
Exemple de conteneur
Créez un Dockerfile :
Créez et diffusez l'image :
# Build the image docker build -t my-durable-function . # Tag for ECR docker tag my-durable-function:latest 123456789012.dkr.ecr.us-east-1.amazonaws.com/my-durable-function:latest # Push to ECR docker push 123456789012.dkr.ecr.us-east-1.amazonaws.com/my-durable-function:latest
Créez la fonction avec l'exécution durable activée :
aws lambda create-function \ --function-name myDurableFunction \ --package-type Image \ --code ImageUri=123456789012.dkr.ecr.us-east-1.amazonaws.com/my-durable-function:latest \ --role arn:aws:iam::123456789012:role/lambda-execution-role \ --durable-config '{"ExecutionTimeout": 3600, "RetentionPeriodInDays": 7}'
Pour plus d'informations sur l'utilisation d'images de conteneur avec Lambda, consultez la section Création d'images de conteneur Lambda dans le Lambda Developer Guide.
Considérations relatives à l’exécution
Gestion des versions du SDK : pour conserver le contrôle total de vos dépendances et éviter d'éventuels problèmes de désalignement des versions, nous vous recommandons d'ajouter toutes les dépendances de votre fonction à votre package de déploiement, même si des versions de celles-ci sont incluses par défaut dans le runtime Lambda. Cela inclut le SDK d'exécution durable. Verrouillez le SDK d'exécution durable sur une version majeure dans votre fichier de dépendances. Une nouvelle version majeure peut introduire des modifications susceptibles d'entraîner l'échec des exécutions en vol. Utilisez des versions numérotées ou des alias pour les fonctions durables de production plutôt que pour $LATEST vous assurer que les modifications de version du SDK n'affectent pas les exécutions en cours.
Mises à jour d'exécution : AWS met à jour les environnements d'exécution gérés pour inclure des correctifs de sécurité et des corrections de bogues. Ces mises à jour peuvent inclure de nouvelles versions du SDK. Pour éviter tout comportement inattendu, incluez le SDK dans votre package de déploiement et testez-le minutieusement avant le déploiement en production.
Taille de l'image de conteneur : les images de conteneur ont une taille non compressée maximale de 10 Go. Le SDK d'exécution durable ajoute une taille minimale à votre image. Optimisez votre conteneur en utilisant des versions en plusieurs étapes et en supprimant les dépendances inutiles.
Performances de démarrage à froid : les temps de démarrage à froid des images de conteneurs peuvent être plus longs que ceux des environnements d'exécution gérés. Le SDK d'exécution durable a un impact minimal sur les performances de démarrage à froid. Utilisez la simultanéité provisionnée si la latence de démarrage à froid est essentielle pour votre application.