Comment puis-je résoudre l'erreur « serveur interne » avec le code d'état 500 pour les points de terminaison API Gateway qui s'intègrent à Lambda ?

Dernière mise à jour : 19/10/2022

J'ai envoyé une requête HTTP à mon point de terminaison d'API Amazon API Gateway qui s'intègre à AWS Lambda (par exemple, /lambda-resource GET). J'ai reçu une réponse avec le code d'état 500 et l'erreur suivante : {« message » : « Erreur interne du serveur »}

Comment puis-je résoudre cette erreur ?

Brève description

Cette erreur peut être due à :

  • Autorisations des fonctions Lambda
  • Problèmes de limitation
  • Mappage de code d'état HTTP incorrect ou manquant
  • Erreurs non gérées

Résolution

Avant de commencer, suivez les étapes pour activer Amazon CloudWatch Logs afin de résoudre les erreurs d'API Gateway.

Remarque : Pour le niveau Log, choisissez INFO pour générer des journaux d'exécution pour toutes les requêtes.

Autorisations des fonctions Lambda

L'erreur « Autorisations non valides sur la fonction Lambda » se produit si API Gateway n'est pas autorisée à appeler la fonction Lambda. Pour résoudre ce problème, consultez Comment résoudre les erreurs « Autorisations non valides sur la fonction Lambda » des API REST d'API Gateway ?

Remarque : Si vous avez utilisé un autre service, tel qu'AWS CloudFormation, pour déployer vos ressources API Gateway, assurez-vous de disposer des autorisations nécessaires pour la ressource AWS::Lambda::Permission.

Problèmes de limitation

Si le service backend est limité en raison d'un nombre élevé de demandes, l'API Gateway peut renvoyer une « erreur interne du serveur ». Vous pouvez activer un mécanisme d'arrêt et de backoff exponentiel et réessayer la demande. Si le problème persiste, consultez votrelimite de quota API Gateway. Si vous avez dépassé la limite de quota de service, vous pouvez demander une augmentation du quota.

Vous pouvez également recevoir des erreurs « Taux dépassé » et 429 erreurs « TooManyRequestsException » en raison de problèmes de limitation de la fonction Lambda. Pour en savoir plus, consultez Comment résoudre les problèmes de limitation de la fonction Lambda avec des erreurs « Dépassement de taux » et 429 « TooManyRequestsException » ?

Vous pouvez également demander une augmentation de la limite de simultanéité de la fonction Lambda afin que la fonction ne soit pas limitée. Pour obtenir des instructions, voyez Comment puis-je demander une augmentation de la limite de simultanéité pour ma fonction Lambda ?

Mappage de code d'état HTTP incorrect ou manquant

Un mappage incorrect ou manquant du code d'état HTTP peut également entraîner des erreurs 500 similaires aux suivantes :

« L'exécution a échoué en raison d'une erreur de configuration : le mappage de sortie fait référence à une réponse de méthode non valide : 2xx/4xx/5xx ».

Pour résoudre cette erreur, assurez-vous qu'une réponse à la méthode API existe pour le code d'état renvoyé par le backend et qu'elle est correctement mappée.

Erreurs non gérées

Les erreurs non gérées dans Lambda indiquent que la fonction expire en raison d'erreurs dans le code de la fonction. Pour éviter cette erreur, assurez-vous que le code de la fonction Lambda est idempotent.

Vous pouvez également utiliser l'outil de débogage AWS X-Ray pour obtenir plus de détails sur la durée d'exécution des différentes sections du code de votre fonction.

Pour plus d'informations, consultez Modèles de gestion des erreurs dans Amazon API Gateway et AWS Lambda.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?