

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.

# SDK d'exécution durable
<a name="durable-execution-sdk"></a>

Le SDK d'exécution durable est la base de la création de fonctions durables. Il fournit des primitives pour contrôler la progression, gérer les nouvelles tentatives et gérer le flux d'exécution. Le SDK élimine la complexité de la gestion et de la rediffusion des points de contrôle, en vous permettant d'écrire du code séquentiel qui devient automatiquement tolérant aux pannes.

Le SDK est disponible pour JavaScript Python et Java. TypeScript Pour obtenir une documentation complète sur les API, des didacticiels de démarrage rapide et des guides spécifiques aux langues, consultez le Guide du développeur du [SDK AWS Durable Execution](https://docs.aws.amazon.com/durable-execution/).

## Ce que fait le SDK
<a name="durable-sdk-what-it-does"></a>

**Gestion des points de contrôle :** le SDK crée automatiquement des points de contrôle lorsque votre fonction exécute des opérations durables. Chaque point de contrôle enregistre le type d'opération, les entrées et les résultats. Lorsque votre fonction termine une étape, le SDK maintient le point de contrôle avant de continuer. Cela garantit que votre fonction peut reprendre après toute opération terminée en cas d'interruption.

**Coordination des rediffusions :** lorsque votre fonction reprend après une pause ou une interruption, le SDK effectue une rediffusion. Il exécute votre code depuis le début mais ignore les opérations terminées, en utilisant les résultats des points de contrôle stockés au lieu de les réexécuter. Le SDK garantit que la rediffusion est déterministe. Avec les mêmes entrées et le même journal de points de contrôle, votre fonction produit les mêmes résultats.

**Isolation des états :** le SDK conserve l'état d'exécution séparément de votre logique métier. Chaque exécution durable possède son propre journal de points de contrôle auquel les autres exécutions ne peuvent pas accéder. Le SDK chiffre les données des points de contrôle au repos et garantit la cohérence de l'état entre les rediffusions.

Pour une explication détaillée du fonctionnement du point de contrôle et du comportement de rediffusion, consultez la section [Concepts clés](https://docs.aws.amazon.com/durable-execution/getting-started/key-concepts/) du guide du développeur du SDK AWS Durable Execution.

## Opérations durables
<a name="durable-sdk-operations"></a>

Le SDK fournit un `DurableContext` objet à votre fonction. Ce contexte remplace le contexte Lambda standard et fournit des méthodes pour créer des points de contrôle, gérer le flux d'exécution et coordonner avec des systèmes externes.

`DurableContext`fournit les opérations suivantes pour créer des flux de travail durables :


| Opération | Description | 
| --- | --- | 
| [Step (Étape)](https://docs.aws.amazon.com/durable-execution/sdk-reference/operations/step/) | Exécutez et contrôlez une unité de travail avec des stratégies de nouvelle tentative et une sémantique d'exécution configurables. | 
| [Attente](https://docs.aws.amazon.com/durable-execution/sdk-reference/operations/wait/) | Suspendez l'exécution pendant une durée spécifiée sans consommer de ressources informatiques. | 
| [Attendre l'état](https://docs.aws.amazon.com/durable-execution/sdk-reference/operations/wait-for-condition/) | Interrogez pour détecter une condition avec pointage automatique entre les tentatives. | 
| [Rappel](https://docs.aws.amazon.com/durable-execution/sdk-reference/operations/callback/) | Interrompez l'exécution et attendez qu'un système externe fournisse une entrée via l'API Lambda. | 
| [Invoke](https://docs.aws.amazon.com/durable-execution/sdk-reference/operations/invoke/) | Appelez une autre fonction Lambda et attendez son résultat, avec un point de contrôle automatique. | 
| [Parallèle](https://docs.aws.amazon.com/durable-execution/sdk-reference/operations/parallel/) | Exécutez plusieurs opérations simultanément grâce à des politiques d'achèvement configurables. | 
| [Map](https://docs.aws.amazon.com/durable-execution/sdk-reference/operations/map/) | Traitez chaque élément d'une collection simultanément avec un contrôle de simultanéité facultatif. | 
| [Contexte de l'enfant](https://docs.aws.amazon.com/durable-execution/sdk-reference/operations/child-context/) | Créez un contexte d'exécution isolé pour regrouper plusieurs opérations. | 

Chaque opération durable crée automatiquement des points de contrôle, garantissant ainsi que votre fonction peut reprendre à tout moment. Pour des références détaillées sur les API, des exemples de code et une utilisation spécifique au langage, consultez la section [Référence du SDK](https://docs.aws.amazon.com/durable-execution/sdk-reference/) dans le Guide du développeur du SDK AWS Durable Execution.

## Comment mesure-t-on la durabilité des opérations
<a name="durable-operations-checkpoint-consumption"></a>

Chaque opération durable que vous effectuez `DurableContext` crée des points de contrôle pour suivre la progression de l'exécution et stocker les données d'état. Ces opérations sont facturées en fonction de leur utilisation, et les points de contrôle peuvent contenir des données qui contribuent à vos coûts d'écriture et de conservation des données. Les données stockées incluent les données relatives aux événements d'invocation, les charges utiles renvoyées par les étapes et les données transmises lors de l'exécution des rappels. Comprendre comment la durabilité des opérations est mesurée vous permet d'estimer les coûts d'exécution et d'optimiser vos flux de travail. Pour plus de détails sur la tarification, consultez la page de [tarification de Lambda](https://aws.amazon.com/lambda/pricing/).

La taille de la charge utile fait référence à la taille des données sérialisées qu'une opération durable persiste. Les données sont mesurées en octets et leur taille peut varier en fonction du sérialiseur utilisé par l'opération. La charge utile d'une opération peut être le résultat lui-même en cas d'achèvement réussi, ou l'objet d'erreur sérialisé en cas d'échec de l'opération.

### Opérations de base
<a name="durable-operations-basic"></a>

Les opérations de base sont les éléments fondamentaux des fonctions durables :


| Opération | Chronométrage des points de contrôle | Nombre d'opérations | Les données ont persisté | 
| --- | --- | --- | --- | 
| Exécution | Démarré(e) | 1 | Taille de la charge utile d'entrée | 
| Exécution | Terminé (Succeeded/Failed/Stopped) | 0 | Taille de la charge utile de sortie | 
| Step (Étape) | Retry/Succeeded/Failed | 10 \+ Aucune nouvelle tentative | Taille de la charge utile renvoyée à chaque tentative | 
| Attente | Démarré(e) | 1 | N/A | 
| WaitForCondition | Chaque tentative de sondage | \+ 1 x N sondages | Taille de la charge utile renvoyée à chaque tentative de sondage | 
| Invocation-level Réessayer | Démarré(e) | 1 | Charge utile pour l'objet d'erreur | 

### Opérations de rappel
<a name="durable-operations-callbacks"></a>

Les opérations de rappel permettent à votre fonction de faire une pause et d'attendre que des systèmes externes fournissent une entrée. Ces opérations créent des points de contrôle lorsque le rappel est créé et lorsqu'il est terminé :


| Opération | Chronométrage des points de contrôle | Nombre d'opérations | Les données ont persisté | 
| --- | --- | --- | --- | 
| CreateCallback | Démarré(e) | 1 | N/A | 
| Exécution du rappel via un appel d'API | Terminé | 0 | Charge utile de rappel | 
| WaitForCallback | Démarré(e) | 3 \+ N tentatives (contexte \+ rappel \+ étape) | Charges utiles renvoyées par les tentatives d'étape de l'expéditeur, plus deux copies de la charge utile de rappel | 

### Opérations composées
<a name="durable-operations-compound"></a>

Les opérations composées combinent plusieurs opérations durables pour gérer des modèles de coordination complexes tels que l'exécution parallèle, le traitement de tableaux et les contextes imbriqués :


| Opération | Chronométrage des points de contrôle | Nombre d'opérations | Les données ont persisté | 
| --- | --- | --- | --- | 
| Parallèle | Démarré(e) | 1 \+ N branches (1 contexte parent \+ N contextes enfants) | Jusqu'à deux copies de la taille de charge utile renvoyée par chaque branche, plus les statuts de chaque branche | 
| Map | Démarré(e) | 1 \+ N branches (1 contexte parent \+ N contextes enfants) | Jusqu'à deux copies de la taille de charge utile renvoyée par itération, plus les statuts de chaque itération | 
| Des aides à la promesse | Terminé | 1 | Taille de la charge utile renvoyée par la promesse | 
| RunInChildContext | Succeeded/Failed | 1 | Taille de la charge utile renvoyée par le contexte enfant | 

Pour les contextes, tels que ceux issus `runInChildContext` ou utilisés en interne par des opérations composées, les résultats inférieurs à 256 Ko sont directement contrôlés. Les résultats les plus importants ne sont pas stockés ; ils sont reconstruits lors de la rediffusion en retraitant les opérations du contexte.