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.
Gestion des erreurs Lambda avec une API API Gateway
API Gateway traite toutes les erreurs d'invocation et de fonction comme des erreurs internes. Si l’API Lambda rejette la demande d'invocation, API Gateway renvoie un code d’erreur 500. Si la fonction s’exécute mais renvoie une erreur ou une réponse dans un format inadéquat, API Gateway renvoie un code d’erreur 502. Dans les deux cas, le corps de la réponse d’API Gateway est {"message":
"Internal server error"}
.
Note
API Gateway ne fait aucune nouvelle tentative d’appel Lambda. Si Lambda renvoie une erreur, API Gateway renvoie une réponse d’erreur au client.
L’exemple suivant montre une cartographie de suivi X-Ray pour une demande qui a entraîné une erreur de fonction et un message d’erreur 502 d’API Gateway. Le client reçoit le message d’erreur générique.
Pour personnaliser la réponse d’erreur, vous devez attraper les erreurs dans votre code et formater une réponse dans le format requis.
Exemple index.js : formatage des erreurs
var formatError = function(error){ var response = { "statusCode": error.statusCode, "headers": { "Content-Type": "text/plain", "x-amzn-ErrorType": error.code }, "isBase64Encoded": false, "body": error.code + ": " + error.message } return response }
API Gateway convertit cette réponse en une erreur HTTP avec un code d’état et un corps personnalisés. Dans la carte de trace, le nœud de fonction est vert car il a géré l’erreur.