Comment Lambda gère les erreurs et les nouvelles tentatives avec un appel asynchrone - 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.

Comment Lambda gère les erreurs et les nouvelles tentatives avec un appel asynchrone

Lambda gère la file d'attente d'événements asynchrone de votre fonction et tente de réessayer en cas d'erreur. Si la fonction renvoie une erreur, Lambda tente par défaut de l'exécuter deux fois de plus, avec une minute d'attente entre les deux premières tentatives et deux minutes entre la deuxième et la troisième tentative. Les erreurs de fonction comprennent des erreurs renvoyées par le code de la fonction et des erreurs renvoyées par l’environnement d’exécution de la fonction, comme les délais d’expiration.

Si la fonction n’a pas suffisamment de simultanéité disponible pour traiter tous les événements, des demandes supplémentaires sont bloquées. Pour les erreurs de régulation (429) et les erreurs système (série 500), Lambda renvoie l'événement dans la file d'attente et tente de réexécuter la fonction pendant 6 heures maximum par défaut. L’intervalle de nouvelle tentative augmente de manière exponentielle de 1 seconde après la première tentative jusqu’à un maximum de 5 minutes. Si la file d’attente contient de nombreuses entrées, Lambda augmente l’intervalle entre les tentatives et réduit la fréquence des événements de lecture à partir de la file d’attente.

Même si votre fonction ne renvoie pas d’erreur, elle peut recevoir plusieurs fois le même événement de Lambda, car la file d’attente elle-même est cohérente à terme. Si la fonction ne peut pas à prendre en charge les événements entrants, ils peuvent également être supprimés de la file d’attente sans être envoyés à la fonction. Assurez-vous que le code de votre fonction gère correctement les événements dupliqués et que vous avez suffisamment de simultanéité disponible pour gérer toutes les invocations.

Lorsque la file d’attente est très longue, il peut arriver que de nouveaux événements expirent avant que Lambda ait la possibilité de les envoyer à votre fonction. Quand un événement expire ou échoue à toutes les tentatives de traitement, Lambda le supprime. Vous pouvez configurer la gestion des erreurs pour une fonction de façon à réduire le nombre de nouvelles tentatives que Lambda effectue, ou à supprimer les événements non traités plus rapidement.

Vous pouvez désormais configurer Lambda pour envoyer un enregistrement d’invocation à un autre service. Pour en savoir plus, consultez Capture d'enregistrements d'appels asynchrones Lambda.