View a markdown version of this page

Bonnes pratiques pour les fonctions durables de Lambda - AWS Lambda

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.

Bonnes pratiques pour les fonctions durables de Lambda

Les fonctions durables utilisent un modèle d'exécution basé sur le replay 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 d'exécution AWS durable 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 le déploiement, l'appel et la surveillance des fonctions durables Lambda.

Versions et alias des fonctions

Invoquez des fonctions avec des numéros de version ou des alias pour associer les exécutions à des versions de code spécifiques. Assurez-vous que les nouvelles versions du 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.

Contrôle

Activez la journalisation structurée avec les identifiants d'exécution et les noms des é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

Outre la configuration de 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 échecs permanents d'exécutions. 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. Cela vous permet d'inspecter, de déboguer et éventuellement de retraiter les événements ayant échoué sans les perdre.

Pour configurer un 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 les meilleures pratiques suivantes pour gérer les erreurs avec des fonctions durables :

  • Configurer un DLQ pour les invocations 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, les exécutions durables ne sont pas automatiquement renouvelées en cas d'échec. Le DLQ est donc votre filet de sécurité pour capturer les événements qui ont entraîné un échec définitif des exécutions.

  • Utilisez des stratégies de nouvelle tentative par étapes : configurez des stratégies de nouvelle tentative explicites avec un délai approprié pour les échecs transitoires. Pour obtenir des conseils sur la configuration des nouvelles tentatives, voir Rétentatives pour des fonctions durables.

  • Combinez les DLQ avec EventBridge les notifications : utilisez des EventBridge règles pour signaler les changements de statut FAILED, STOPPED et TIMED_OUT pour une visibilité en temps réel, et utilisez une DLQ pour conserver 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 ApproximateNumberOfMessagesVisible métrique pour que votre DLQ détecte les défaillances qui s'accumulent.

Ressources connexes