Lambda AWS s'arrête-t-il lorsque je lance une exception?

Dans mon code, je lance une exception lorsqu'un état illégal se produit. Je veux savoir comment Lambda y fait face si le service est arrêté ou non.

Je ne trouve aucune référence à cela, dans leur documentation, il s'agit de gérer les erreurs / exceptions. Mais je veux savoir si une exception non gérée doit arrêter mon service Lambda.

1
Nofar103 17 août 2017 à 21:53

2 réponses

Meilleure réponse

Ce que fait AWS Lambda lorsqu'il rencontre une exception dépend de la manière dont il a été appelé. En bref: s'il est appelé de manière synchrone, une erreur est renvoyée à l'appelant, s'il est appelé de manière asynchrone, des tentatives se produisent. Pour plus de détails, veuillez consulter https: // docs. aws.amazon.com/lambda/latest/dg/retries-on-errors.html

Le modèle d'exécution d'AWS Lambda étant sans état, une exception n'affecte que l'appel actuel. Les appels suivants sont traités correctement comme s'il n'y avait pas d'exception.

(Clause de non-responsabilité: AWS Lambda n'est apatride que dans une certaine mesure, car il réutilise les conteneurs existants. Je pense que ce n'est pas pertinent pour votre question, mais si vous souhaitez en savoir plus à ce sujet, je vous suggère l'article suivant: https://aws.amazon.com/de/blogs/compute/container-reuse- in-lambda /)

2
Dunedan 17 août 2017 à 19:28

Lambda appelle votre fonction via des déclencheurs (par exemple un événement S3 PUT)

Les exceptions qui se propagent en dehors de votre code seront interceptées et cet appel sera marqué comme "Erreur", vous verrez une métrique pour cela dans CloudWatch.

Cela n'affectera pas les futures invocations de votre fonction, c'est-à-dire que vous pourriez déclencher à nouveau le lambda et qu'il exécutera à nouveau votre code.

1
djhworld 17 août 2017 à 20:19