Passer au contenu

Comment éviter les invocations de fonctions Lambda en double ?

Lecture de 3 minute(s)
0

Ma fonction AWS Lambda a reçu plusieurs demandes d'invocation pour un seul événement.

Brève description

Pour les invocations synchrones, les clients et les services AWS qui invoquent une fonction Lambda réitèrent l'opération. Pour les invocations asynchrones, Lambda réessaie automatiquement deux fois les erreurs de fonction.

Résolution

Pour éviter les invocations de fonctions Lambda en double, effectuez les actions suivantes en fonction de la méthode d'invocation que vous utilisez.

Remarque : Pour résoudre les problèmes liés à l'invocation des fonctions, consultez la section Comment résoudre les problèmes liés aux échecs des fonctions Lambda ?

Invocations asynchrones

Consultez vos journaux Amazon CloudWatch de la fonction Lambda. Vérifiez si les invocations en double ont le même ID de requête et si les invocations en double ont renvoyé des erreurs ou ont expiré.

Procédez ensuite de l'une des manières suivantes en fonction de votre cas d'utilisation :

Pour les invocations en double qui ont renvoyé des erreurs ou ont expiré et qui ont le même ID de requête

Remarque : Les invocations en double qui renvoient des erreurs ou un délai d'expiration et qui ont le même ID de requête indiquent que le service Lambda a réessayé la fonction.

Configurez la gestion des erreurs pour les invocations asynchrones afin de réduire le nombre de fois que votre fonction Lambda réessaie des requêtes d’invocation asynchrones ayant échoué.

Pour les invocations en double qui n'ont pas renvoyé d'erreur ou de délai d’expiration

Remarque : Les invocations en double qui ne renvoient pas d'erreur ni de délai d'expiration indiquent des tentatives effectuées côté client.

Effectuez les opérations suivantes :

Remarque : Pour résoudre les échecs d’invocation de la fonction, consultez la section Comment résoudre les problèmes liés aux échecs de la fonction Lambda ?

Invocations synchrones

Remarque : Le comportement des nouvelles tentatives d'invocation synchrone varie d'un service AWS à un autre, en fonction du mappage des sources d'événements de chaque service. Pour plus d'informations, consultez la section Invocation de Lambda avec des événements provenant d'autres services AWS.

Assurez-vous que le code de votre fonction Lambda est idempotent et capable de gérer des messages plusieurs fois. Puis, identifiez et résolvez les erreurs renvoyées par votre fonction Lambda.

Informations connexes

Utilisation de l'historique des événements CloudTrail

Bonnes pratiques d’utilisation de la fonction AWS Lambda

AWS OFFICIELA mis à jour il y a 6 mois