Les erreurs D504CO indiquent qu'API Gateway n'a pas pu se connecter à votre service backend. Chaque sous-erreur correspond à un mode de défaillance spécifique : identifiez le message exact dans la réponse, puis suivez les étapes associées.
Échec de connexion au service backend « Timeout connecting to 172.X.X.1:80 »
Cause : API Gateway n'a pas pu atteindre le service backend dans le délai imparti.
Solution : Vérifiez les points suivants dans l'ordre :
Vérifiez que l'URL du service backend est correcte.
Si le service backend s'exécute sur une instance Elastic Compute Service (ECS), examinez les règles du groupe de sécurité. Ajoutez l'adresse IP de sortie d'API Gateway à la liste d'autorisation pour autoriser le trafic entrant en provenance d'API Gateway.
Assurez-vous qu'aucune liste d'autorisation ou de blocage du service backend ne bloque API Gateway. Vérifiez également que l'application backend est en cours d'exécution et qu'aucun pare-feu sur le serveur backend ne rejette les connexions provenant d'API Gateway.
Si le service backend se trouve dans un VPC et que le trafic traverse les régions ou provient d'un centre de données sur site via Cloud Enterprise Network (CEN), configurez la route de retour. Pour plus d'informations, consultez la rubrique Accès aux services cloud.
Échec de connexion au service backend « Connection is closed »
Cause : Le service backend a envoyé un paquet FIN pour fermer la connexion avant qu'API Gateway n'ait terminé le traitement de la requête.
Solution : Ce problème a été résolu en août 2023. API Gateway réessaie désormais automatiquement la connexion lorsqu'il reçoit un paquet FIN du service backend. Si votre instance dédiée a été achetée avant août 2023, ouvrez un ticket pour mettre à jour l'instance vers la version corrigée.
Échec de connexion au service backend « Connection refused »
Cause : Le service backend a rejeté la demande de connexion d'API Gateway.
Solution : Examinez la configuration et les journaux de votre service backend pour identifier la raison des refus de connexion.
Échec de connexion au service backend « Connection lease request time out »
Cause : API Gateway a épuisé toutes les connexions disponibles dans son pool de connexions sortantes avant qu'une connexion ne puisse être attribuée à la requête.
Solution : Migrez votre instance API Gateway vers un modèle disposant d'un pool de connexions plus grand. Pour connaître les types d'instances disponibles et la taille de leur pool de connexions, consultez la rubrique Types d'instances.
Les connexions persistantes HTTP transmettent les données de manière sérielle : l'expéditeur doit attendre l'accusé de réception de chaque requête avant d'envoyer la suivante. Dimensionnez la taille de votre pool de connexions sortantes en fonction du temps de réponse de votre backend et du nombre de requêtes par seconde (RPS) attendu.
Par exemple, une instance api.s1.small dispose d'un pool de 1 200 connexions. Si votre backend met une seconde à répondre à chaque requête, cette instance prend en charge jusqu'à 1 200 RPS sortants. Les requêtes dépassant cette limite sont mises en file d'attente pendant un maximum de 500 millisecondes. Si une requête en attente ne peut pas être distribuée dans ce délai, API Gateway renvoie l'erreur Connection lease request time out au client.