Comment puis-je résoudre les erreurs « la durée d'exécution s'est arrêtée » de la fonction Lambda ?

Lecture de 3 minute(s)
0

La fonction AWS Lambda a renvoyé une erreur « la durée d'exécution s'est arrêtée ».

Brève description

Les erreurs d’exécution de Lambda renvoient un code d’état semblable à l’exemple suivant :

{
    "errorType": "Runtime.ExitError",
    "errorMessage": "RequestId: 1234aa1b-cd50-6c78-90cd-ce1234ce9950 Error: Runtime exited with error: exit status 129"
}

Résolution

Suivez les bonnes pratiques ci-dessous pour examiner le code de la fonction Lambda, identifier la cause première, puis résoudre l’erreur d’exécution.

  • Vérifiez si le code de fonction contient des codes de sortie qui appellent explicitement une syntaxe telle que process.exit(0), exit(), quit(), os.Exit(), Environment.Exit(), etc. Si le code de fonction contient l’un de ces codes de sortie, supprimez-le ou remplacez-le par une instruction de retour valide.
  • Consultez Amazon CloudWatch logs pour la fonction Lambda et vérifiez la mémoire des fonctions. Lambda alloue la puissance du processeur proportionnellement à la quantité de mémoire configurée. Il se peut que vous deviez augmenter la quantité de mémoire. Vous pouvez définir la quantité de mémoire allouée à une fonction Lambda entre 128 Mo et 10 240 Mo. Vous pouvez également optimiser le code pour réduire la quantité de ressources consommées. Pour plus d’informations, consultez la page Mémoire et puissance de calcul.
  • Si la fonction se connecte à des bases de données backend, il se peut que trop de connexions se produisent. Pour éviter les connexions inutiles, initialisez les connexions à la base de données en dehors du gestionnaire de fonctions. Les demandes d’invocation de fonctions Lambda suivantes peuvent réutiliser ces connexions à la base de données. Pour plus d’informations, consultez les Bonnes pratiques d’utilisation des fonctions AWS Lambda.
  • Les tentatives de réutilisation d’une connexion inactive lors de l’appel d’une fonction Lambda entraînent une erreur de connexion. Pour maintenir une connexion permanente, utilisez la directive keep-alive associée à votre environnement d’exécution. Pour plus d’informations, consultez la page Réutilisation des connexions avec keep-alive dans Node.js.
  • Vérifiez si la fonction Lambda contient des erreurs « mémoire insuffisante » en raison de la limite de 1 024 descripteurs de fichiers et de threads. Activez la surveillance améliorée de Lambda Insights sur cette fonction. Vous pouvez rechercher et analyser les données des journaux pour connaître les métriques d’utilisation de la mémoire à l’aide d’une syntaxe de requête spécialisée. Par exemple, vous pouvez surveiller la métrique fd_use. Les métriques sont stockées dans le nom du groupe de journaux /aws/lambda-insights. Pour plus d’informations, consultez la page Métriques collectées par Lambda Insights.

Informations connexes

Comment déterminer si le délai d’attente de ma fonction Lambda a expiré ?

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an