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
Le SDK d'exécution durable constitue la base de la création de fonctions durables. Il fournit des primitives pour contrôler la progression des points, gérer les nouvelles tentatives et gérer le flux d'exécution. Le SDK résume la complexité de la gestion et de la réexécution des points de contrôle, vous permettant d'écrire du code séquentiel qui devient automatiquement tolérant aux pannes.
Le SDK est disponible pour Python JavaScript TypeScript, Java et C# (.NET). Pour une documentation complète sur l'API, des didacticiels de démarrage rapide et des guides spécifiques à chaque langue, consultez le Guide du développeur du SDK AWS Durable Execution.
Ce que fait le SDK
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 une 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 enregistré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 de l'état : 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 des 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 que l'état reste cohérent entre les rediffusions.
Pour une explication détaillée du fonctionnement des points de contrôle et du comportement des rediffusions, consultez les concepts clés du guide du développeur du SDK AWS Durable Execution.
Opérations durables
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.
DurableContextIl fournit les opérations suivantes pour créer des flux de travail durables :
| Opération | Description |
|---|---|
| Step (Étape) | Exécutez et contrôlez une unité de travail à l'aide de stratégies de nouvelle tentative configurables et d'une sémantique d'exécution. |
| Attente | Suspendez l'exécution pendant une durée spécifiée sans consommer de ressources de calcul. |
| Attendre la condition | Sondage pour une condition avec un point de contrôle automatique entre les tentatives. |
| Rappel | Suspendez l'exécution et attendez qu'un système externe fournisse des données via l'API Lambda. |
| Invoke | Appelez une autre fonction Lambda et attendez son résultat, avec un point de contrôle automatique. |
| Parallèle | Exécutez plusieurs opérations simultanément grâce à des politiques d'achèvement configurables. |
| Map | Traitez chaque élément d'une collection simultanément grâce au contrôle de simultanéité facultatif. |
| Contexte de l'enfant | 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 la reprise de votre activité à tout moment. Pour une référence détaillée de l'API, des exemples de code et une utilisation spécifique au langage, consultez la section Référence du SDK dans le AWS Durable Execution SDK Developer Guide.
Comment les opérations durables sont-elles mesurées
Chaque opération durable que vous appelez 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 payantes 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 les opérations durables sont mesurées 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
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é si l'opération a échoué.
Opérations de base
Les opérations de base sont les éléments fondamentaux des fonctions durables :
| Opération | Calendrier 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 | 1 + Aucune tentative | Taille de la charge utile renvoyée à chaque tentative |
| Attente | Démarré(e) | 1 | N/A |
| WaitForCondition | Chaque tentative de sondage | 1 + N sondages | Taille de la charge utile renvoyée à chaque tentative de sondage |
| Invocation-level Réessayez | Démarré(e) | 1 | Charge utile pour l'objet d'erreur |
Opérations de rappel
Les opérations de rappel permettent à votre fonction de faire une pause et d'attendre que les 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 | Calendrier 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
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 | Calendrier 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 enfant) | Jusqu'à deux copies de la taille de la 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 enfant) | Jusqu'à deux copies de la taille de la charge utile renvoyée pour chaque itération, plus les statuts de chaque itération |
| Promise helpers | Terminé | 1 | Taille de la charge utile renvoyée à partir de la promesse |
| RunInChildContext | Succeeded/Failed | 1 | Taille de la charge utile renvoyée depuis le contexte de l'enfant |
Pour les contextes, tels que from runInChildContext ou utilisés en interne par des opérations composées, les résultats inférieurs à 256 Ko sont directement vérifiés. Les résultats plus volumineux ne sont pas stockés, mais reconstruits lors de la rediffusion en retraitant les opérations du contexte.