

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
<a name="durable-supported-runtimes"></a>

Des fonctions durables sont disponibles pour certains environnements d'exécution gérés et pour les images de conteneur OCI pour une flexibilité accrue des versions d'exécution. Vous pouvez créer des fonctions durables pour Node.js Python et Java à l'aide d'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
<a name="durable-managed-runtimes"></a>

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 AWS CLI le paramètre with `--durable-config '{"ExecutionTimeout": 3600, "RetentionPeriodInDays": 7}'` the. [Pour des informations complètes sur les environnements d'exécution Lambda, consultez la section Runtimes Lambda.](lambda-runtimes.md)


| Language | Environnement d’exécution | 
| --- | --- | 
| Node.js | nodejs22.x | 
| Node.js | nodejs24.x | 
| Python | python3.13 | 
| Python | python3,14 | 
| Java | java17 | 
| Java | java 21 | 
| Java | java 25 | 

**Note**  
Les environnements d'exécution Lambda et Node.js Python incluent le SDK d'exécution durable pour les tests et le développement. Toutefois, nous vous recommandons d'inclure le SDK dans votre package de déploiement pour la production. Cela garantit la cohérence des versions et évite les mises à jour d'exécution potentielles susceptibles d'affecter le comportement de votre fonction. Java étant un langage compilé, les environnements d'exécution Lambda Java n'incluent pas le SDK d'exécution durable. Il doit donc être inclus dans votre package de déploiement.

### Node.js
<a name="durable-runtime-nodejs"></a>

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
<a name="durable-runtime-python"></a>

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 nécessite pas. `async/await`

### Java
<a name="durable-runtime-java"></a>

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.

## Images de conteneurs
<a name="durable-container-images"></a>

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 :

1. Création d'un Dockerfile basé sur une image de base Lambda

1. Installez le SDK d'exécution durable dans votre conteneur

1. Créez et transférez l'image du conteneur vers Amazon Elastic Container Registry

1. Créez la fonction Lambda à partir de l'image du conteneur avec l'exécution durable activée

### Exemple de conteneur
<a name="durable-container-python"></a>

Créez un Dockerfile :

------
#### [ Python ]

Créez un Dockerfile pour Python 3.11 :

```
FROM public.ecr.aws/lambda/python:3.11

# Copy requirements file
COPY requirements.txt ${LAMBDA_TASK_ROOT}/

# Install dependencies including durable SDK
RUN pip install -r requirements.txt

# Copy function code
COPY lambda_function.py ${LAMBDA_TASK_ROOT}/

# Set the handler
CMD [ "lambda_function.handler" ]
```

Créez un `requirements.txt` fichier :

```
aws-durable-execution-sdk-python
```

------
#### [ Java ]

Créez un Dockerfile pour Java 25 :

```
FROM --platform=linux/amd64 public.ecr.aws/lambda/java:25

# Install Maven
RUN dnf install -y maven

WORKDIR /var/task

# Copy Maven configuration and source code
COPY pom.xml .
COPY src ./src

# Build
RUN mvn clean package -DskipTests

# Move JAR to lib directory
RUN mv target/*.jar lib/

# Set the handler
CMD ["src.path.to.lambdaFunction::handler"]
```

------

Créez et publiez 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 guide du développeur](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html) Lambda.

## Considérations relatives à l’exécution
<a name="durable-runtime-considerations"></a>

**Gestion des versions du SDK :** pour conserver un contrôle total sur 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 de votre fichier de dépendance. 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 créer des fonctions durables 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 de manière approfondie avant de le déployer en production.

**Taille de l'image du conteneur :** les images du 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 builds en plusieurs étapes et en supprimant les dépendances inutiles.

**Performances de démarrage à froid :** les images de conteneur peuvent avoir des temps de démarrage à froid plus longs que les temps 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.