2 votes

Fonction lambda AWS se déclenchant plusieurs fois pour un même événement avec le même horodatage

J'ai configuré le déclencheur AWS S3 à la fonction lambda avec l'opération PUT.

Toutes les 2 minutes, téléchargement d'un fichier .txt d'une taille de 100 kb.

Parfois, S3 déclenche lambda deux fois avec le même événement et la même heure.

Déclencheur 1 :

START RequestId: f32a3353-bd53-48fd-aa49-c09ee9c82a3e 2019-07-30T22:47:05.122Z

Déclencheur 2 :

START RequestId: f32a3353-bd53-48fd-aa49-c09ee9c82a3e 2019-07-30T22:47:05.98Z

Comment puis-je éviter cela ?

3voto

Azize Points 712

Permettez-moi de citer la documentation :

Occasionnellement, votre fonction peut recevoir le même événement plusieurs fois, même si aucune erreur ne se produit.

Un autre :

Lorsqu'une erreur se produit, votre fonction peut être invoquée plusieurs fois. Le comportement de relance varie en fonction du type d'erreur, du client, de la source de l'événement et du type de type d'invocation. Par exemple, si vous invoquez une fonction de manière asynchrone et qu'elle renvoie une erreur, Lambda exécute la fonction jusqu'à deux fois de plus. fois de plus.

Référence : https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html

Idempotent

Votre lambda doit être idempotent pour gérer ce comportement, voir plus de détails sur les liens ci-dessous :

https://aws.amazon.com/premiumsupport/knowledge-center/lambda-function-idempotent/

https://cloudonaut.io/your-lambda-function-might-execute-twice-deal-with-it/

0voto

Vorsprung Points 5623

Il s'agit probablement d'un problème avec l'invocation de la fonction Lambda, voir https://docs.aws.amazon.com/lambda/latest/dg/retries-on-errors.html

En tant que tel, il sera inoffensif (le code n'est pas exécuté deux fois).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X