Comment résoudre les problèmes d'appel asynchrone Lambda ?

Lecture de 4 minute(s)
0

J'ai configuré une fonction AWS Lambda pour l'appeler de manière asynchrone, mais la destination ne démarre pas. Comment puis-je résoudre ce problème ? Lorsque j'invoque une fonction Lambda via la console Lambda, est-elle invoquée de manière synchrone ou asynchrone ? -ou- Comment corriger les invocations de fonctions Lambda dupliquées ?

Solution

Lorsque vous invoquez une fonction Lambda de manière asynchrone et que celle-ci échoue, les causes possibles sont les suivantes :

  • Lambda n'est pas autorisé à effectuer les actions incluses dans le code.
  • Le service AWS qui invoque la fonction Lambda ne dispose pas d'autorisations suffisantes.
  • La fonction Lambda est invoquée de manière synchrone.
  • Les nouvelles tentatives ont été définies sur 0 dans la configuration d'appel asynchrone pour une fonction Lambda.

Pour résoudre les problèmes d'invocation asynchrone, procéder comme suit :

1.    Déterminer comment la fonction Lambda est invoquée. La fonction est-elle invoquée via l'interface de ligne de commande AWS CLI? La fonction est-elle invoquée via un service AWS ?

2.    Vérifier si le service AWS invoque la fonction Lambda de manière synchrone ou asynchrone.

3.    Invoquer la fonction Lambda de manière asynchrone à l'aide de la commande suivante :

aws lambda invoke
  --function-name my-function 
      --invocation-type Event
          --cli-binary-format raw-in-base64-out
              --payload '{ "key": "value" }' response.json

Vérifier si un code d'état 202 est signalé ou si la commande renvoie une erreur.

4.    Consultez les journaux Amazon CloudWatch de la fonction Lambda pour voir si les invocations dupliquées :

  • Ont le même identifiant de demande ou non.
  • Des erreurs ont été renvoyées ou ont expiré.

Pour plus d'informations, voir Comment empêcher les invocations de fonctions Lambda dupliquées ?

5.    Si les appels dupliqués ont le même ID de demande et ont renvoyé des erreurs ou ont expiré, configurez la gestion des erreurs pour les appels asynchrones. À l'aide de cette configuration, vous pouvez contrôler le nombre de nouvelles tentatives que le service Lambda peut effectuer en cas de panne.

Pour en savoir plus, consultez la section Gestion des erreurs et tentatives automatiques dans AWS Lambda.

Remarque : les appels dupliqués avec le même ID de demande qui renvoient des erreurs ou un délai d'expiration indiquent que Lambda a réessayé la fonction.

6.    Si les appels dupliqués n'ont pas renvoyé d'erreur et n'ont pas expiré, procédez comme suit :

  • Assurez-vous que le code de votre fonction Lambda est idempotent et capable de gérer les mêmes messages plusieurs fois.
  • Assurez-vous que la limite de concurrence de votre fonction Lambda est suffisamment élevée pour gérer le nombre de demandes d'appel qu'elle reçoit.
  • Identifiez et résolvez les erreurs renvoyées par votre fonction Lambda.

Pour plus d'informations, consultez How do I troubleshoot Lambda function failures? (Comment résoudre les échecs des fonctions Lambda ?)

Remarque : Si les invocations dupliquées proviennent du côté client, les ID de demande seront différents.

7.    Si vous ne parvenez toujours pas à résoudre le problème, ouvrez un dossier auprès d'AWS Support. Fournissez les informations suivantes :

  • La fonction Lambda Amazon Resource Name (ARN).
  • Le flux de travail relatif à la configuration de la fonction Lambda avec tous les services inclus.
  • Détails indiquant si le problème est intermittent ou continu.
  • Complétez les journaux CloudWatch au format .txt à partir du moment où le problème s'est produit. Ces journaux CloudWatch sont utilisés pour identifier les erreurs de fonction Lambda, notamment les problèmes de délai d'expiration, de durée d'initialisation et d'autorisations.
  • L'horodatage exact du problème avec le fuseau horaire ou l'horodatage en UTC.

Remarque : Les représentants d'AWS Support n'ont pas accès aux journaux CloudWatch des clients pour des raisons de sécurité et de confidentialité.


Informations connexes

Comparaison des modes d'invocation Lambda

Appel des fonctions Lambda

Présentation des destinations AWS Lambda

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans