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.
Meilleures pratiques pour les fonctions durables de Lambda
Les fonctions durables utilisent un modèle d'exécution basé sur les rediffusions qui nécessite des pratiques de programmation différentes de celles des fonctions Lambda traditionnelles. Consultez les meilleures pratiques du Guide du développeur du SDK AWS Durable Execution pour obtenir des conseils sur la façon d'écrire et de tester du code de flux de travail durable.
Les recommandations suivantes constituent les meilleures pratiques pour déployer, invoquer et surveiller les fonctions durables Lambda.
Versions et alias des fonctions
Invoquez des fonctions avec des numéros de version ou des alias pour épingler les exécutions à des versions de code spécifiques. Assurez-vous que les nouvelles versions de code peuvent gérer l'état des anciennes versions. Ne renommez pas les étapes et ne modifiez pas leur comportement de manière à interrompre la rediffusion. Si vous renommez une étape ou modifiez son comportement alors que des exécutions sont en cours, celles-ci risquent de ne pas reprendre ou de produire des résultats incorrects. Cela se produit car le moteur d'exécution ne peut plus faire correspondre l'état enregistré à la définition d'étape attendue.
Contrôle
Activez la journalisation structurée avec des ID d'exécution et des noms d'étapes. Configurez CloudWatch des alarmes pour les taux d'erreur et la durée d'exécution. Utilisez le traçage pour identifier les goulots d'étranglement. Pour obtenir des instructions détaillées, consultez la section Surveillance et débogage.
Gestion des erreurs
En plus de configurer des stratégies de nouvelle tentative pour les échecs transitoires, configurez une file d'attente de lettres mortes (DLQ) sur votre fonction durable afin de capturer les événements liés à des exécutions ayant échoué définitivement. Lorsqu'une exécution durable atteint un état terminal (FAILED, STOPPED ou TIMED_OUT) après un appel asynchrone, Lambda envoie l'événement déclencheur d'origine au DLQ. De cette façon, vous pouvez inspecter, déboguer et éventuellement retraiter les événements ayant échoué sans les perdre.
Pour configurer une DLQ, définissez la DeadLetterConfig propriété de votre fonction sur une file d'attente Amazon SQS ou un ARN de rubrique Amazon SNS. Pour plus d'informations, consultez la section Dead-letter files d'attente.
Suivez ces bonnes pratiques pour gérer les erreurs à l'aide de fonctions durables :
-
Configurez un DLQ pour les appels asynchrones : attachez toujours une file d'attente de lettres mortes lorsque vous invoquez des fonctions durables de manière asynchrone. Contrairement aux fonctions Lambda standard, le service ne réessaie pas automatiquement les exécutions durables en cas d'échec. Un DLQ correctement configuré capture les événements qui ont entraîné des échecs permanents d'exécutions. Assurez-vous que le DLQ dispose des autorisations appropriées et d'une capacité suffisante pour recevoir des messages.
-
Utilisez des stratégies de nouvelle tentative en quelques étapes — Configurez des stratégies de nouvelle tentative explicites avec un backoff approprié pour les échecs transitoires. Pour obtenir des conseils sur la configuration des nouvelles tentatives, voir Réessais pour des fonctions durables.
-
Combinez les DLQ et EventBridge les notifications : utilisez des EventBridge règles pour signaler les changements d'état FAILED, STOPPED et TIMED_OUT pour une visibilité en temps réel, et utilisez une DLQ pour préserver la charge utile de l'événement d'origine en vue d'une analyse ou d'un retraitement ultérieurs.
-
Surveillez la profondeur de la DLQ : créez une CloudWatch alarme sur la
ApproximateNumberOfMessagesVisiblemétrique de votre DLQ afin de détecter les défaillances qui s'accumulent.