Comment résoudre les erreurs HTTP 504 à partir de mon API REST API Gateway ?

Date de la dernière mise à jour : 23/02/2021

Je reçois un code d'état HTTP 504 lorsque j'appelle mon API REST à l'aide d'Amazon API Gateway. Comment résoudre cette erreur ?

Brève description

Si une demande d'intégration prend plus de temps que votre paramètre de délai d'expiration maximal de l'API REST API Gateway, API Gateway renvoie un code d'état HTTP 504.

Pour résoudre les erreurs 504 d'API Gateway, identifiez d'abord et vérifiez la source de l'erreur dans vos journaux d'exécution Amazon CloudWatch. Ensuite, utilisez une ou plusieurs des méthodes suivantes pour réduire la durée d'exécution de vos demandes d'intégration jusqu'à ce qu'elles n'expirent plus.

Résolution

Pour identifier et vérifier la source de l'erreur 504 dans Amazon CloudWatch logs

1.    Configurez la journalisation API Gateway pour l'API renvoyant les erreurs 504.

2.    Reproduisez manuellement l'erreur 504.

3.    Dans la console CloudWatch, affichez les journaux d'exécution API Gateway pour l'intégration recevant l'erreur.

4.    Suivez l'ID de demande dans vos journaux CloudWatch . S'il y a des délais d'expiration sur l'intégration, vous verrez un échec d'exécution en raison d'un message d'erreur d'expiration après la ligne « Corps de requête du point de terminaison après les transformations : ». Pour plus d'informations, consultez Comment trouver les erreurs d'API REST API Gateway dans mes journaux CloudWatch ?

5.    Déterminez la source de l'erreur en procédant comme suit :
Vérifiez que le point de terminaison d'intégration associé a été intégration invoqué.
Confirmez combien de temps la logique d'intégration a pris pour terminer et répondre à API Gateway.

6.    Si l'intégration n'a pas été invoquée, renouvelez la demande. (L'erreur peut avoir résulté d'une défaillance temporaire du réseau dans le service API Gateway.)
Remarque : Assurez-vous que votre application est idempotente. Cela évite les conflits de données lorsque vous renouvelez la demande d'API.

-ou-

Si l'intégration a été invoquée mais a renvoyé un message d'erreur 504, essayez d'augmenter votre paramètre de délai maximal de demande d'intégration ou de réduire le temps d'exécution de votre intégration.
Remarque : Le délai d'intégration maximal par défaut d'API Gateway est de 30 secondes.

Pour réduire le temps d'exécution de votre intégration

  • Assurez-vous que votre intégration backend inclut uniquement la logique nécessaire pour API Gateway pour envoyer une réponse HTTP au client. Envisagez de déplacer toute logique non dépendante ou de post-traitement vers un autre service, tel qu'AWS Lambda.
  • Si les latences réseau sont à l'origine de l'erreur 504, implémentez la logique de nouvelle tentative sur l'application côté client.
  • Améliorez l'intégration du backend en suivant les bonnes pratiques d'optimisation pour votre plate-forme.

Si aucune de ces actions n'atteint les vitesses de réponse souhaitées, envisagez d'implémenter des appels d'intégration asynchrones API Gateway.


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


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