Je souhaite intégrer un point de terminaison Amazon API Gateway à AWS Lambda, mais je rencontre des problèmes.
Brève description
Les raisons suivantes peuvent entraîner des problèmes pour votre point de terminaison API Gateway intégré à Lambda :
- API Gateway ne dispose pas d'autorisations de la fonction Lambda.
- Une limitation se produit.
- Le mappage du code de statut HTTP est incorrect ou manquant.
- Les exceptions du service Lambda ne sont pas gérées.
Résolution
Remarque : La résolution suivante utilise REST API Gateway pour résoudre les problèmes.
Avant de commencer, activez Amazon CloudWatch Logs pour résoudre les erreurs d'API Gateway. Pour Niveau de journalisation, sélectionnez INFORMATIONS pour générer des journaux d'exécution pour toutes les requêtes.
API Gateway ne dispose pas d'autorisations de la fonction Lambda
L'erreur Autorisations non valides sur la fonction Lambda se produit lorsqu’API Gateway ne dispose pas d’autorisations pour invoquer la fonction Lambda. Pour résoudre ce problème, consultez la section Comment résoudre les erreurs « Autorisations non valides sur la fonction Lambda » provenant des API REST API Gateway ?
Remarque : Si vous utilisez un autre service pour déployer vos ressources API Gateway, tel qu'AWS CloudFormation, accordez des autorisations à la ressource AWS::Lambda::Permission.
Une limitation se produit
Si un nombre élevé de requêtes limite le service de backend, l'API API Gateway peut renvoyer une erreur de serveur interne. Activez un mécanisme de backoff exponentiel et de nouvelles tentatives, puis essayez à nouveau d'exécuter la requête. Si le problème persiste, vérifiez votre quota API Gateway. Si vous dépassez le quota de service, demandez une augmentation du quota.
Vous pouvez également recevoir des erreurs Dépassement du taux et 429 TooManyRequestsException en raison de problèmes de limitation de la fonction Lambda. Vous pouvez également consulter la page Comment puis-je résoudre les problèmes de limitation de la fonction Lambda liés aux erreurs « Dépassement du taux » et 429 « TooManyRequestsException » ?
Demandez une augmentation du quota pour la simultanéité de la fonction Lambda afin que la fonction n’applique pas de limitation.
Le mappage du code de statut est incorrect ou manquant
Lorsque le mappage du code de statut HTTP est incorrect ou absent, un message d'erreur 500 similaire au suivant peut s’afficher :
« 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, configurez la requête d'intégration et la réponse de l'opération API pour renvoyer le code de statut correct.
Les exceptions du service Lambda ne sont pas gérées
Si vous ne gérez pas les exceptions de service Lambda, telles que le délai d'expiration de la fonction Lambda, vous recevez une erreur Lambda.Unknown. Pour éviter un délai d'expiration de la fonction Lambda, rendez le code de votre fonction Lambda idempotent.
Pour plus d'informations, consultez la section Modèles de gestion des erreurs dans Amazon API Gateway et AWS Lambda.
Informations connexes
Comment résoudre les erreurs 5xx pour l'API REST API Gateway ?