Cloud-native API Gateway prend en charge les politiques de nouvelle tentative au niveau des routes pour réessayer automatiquement les requêtes ayant échoué. Vous pouvez configurer les conditions de nouvelle tentative en fonction des échecs de connexion, de l'indisponibilité des services backend ou de codes d'état HTTP spécifiques.
Conditions de nouvelle tentative
Lorsqu'un service backend renvoie une erreur 5xx, Cloud-native API Gateway réessaie automatiquement la requête jusqu'au nombre de fois configuré.
-
Conditions de nouvelle tentative pour le protocole HTTP :
-
5xx : Le service backend renvoie une réponse
5xx, ou la connexion est déconnectée, réinitialisée ou expire lors d'une opération de lecture.RemarqueLa condition
5xxinclut les conditionsconnect-failureetrefused-stream. reset : La connexion est déconnectée, réinitialisée ou expire lors d'une opération de lecture.
connect-failure : La requête échoue car la connexion est déconnectée.
refused-stream : Le service backend réinitialise un flux avec un code d'erreur
REFUSED_STREAM.-
retriable-status-codes : Le code d'état HTTP dans la réponse correspond à un code d'état de nouvelle tentative spécifié.
RemarqueVous ne pouvez utiliser les codes d'état de nouvelle tentative que si
retriable-status-codesest spécifié dans la condition de nouvelle tentative.
-
-
Conditions de nouvelle tentative pour le protocole gRPC :
cancelled : Le code d'état gRPC dans l'en-tête de réponse est
cancelled.deadline-exceeded : Le code d'état gRPC dans l'en-tête de réponse est
deadline-exceeded.internal : Le code d'état gRPC dans l'en-tête de réponse est
internal.resource-exhausted : Le code d'état gRPC dans l'en-tête de réponse est
resource-exhausted.unavailable : Le code d'état gRPC dans l'en-tête de réponse est
unavailable.
Configurer une politique de nouvelle tentative de route
-
Vous pouvez configurer une politique de nouvelle tentative de deux manières, selon la gestion de votre API :
API en dehors d'une instance
Connectez-vous à la console Cloud-native API Gateway. Dans le volet de navigation de gauche, cliquez sur API, puis sélectionnez une région dans la barre de menu supérieure.
Sur la page HTTP API, utilisez la liste déroulante en haut pour sélectionner l'instance cible. Vous pouvez sélectionner une instance spécifique ou All instances.
Dans Routes, cliquez sur la route cible.
API au sein d'une instance
Connectez-vous à la console Cloud-native API Gateway. Dans le volet de navigation de gauche, cliquez sur Instance, puis sélectionnez une région dans la barre de menu supérieure.
Sur la page Instance, cliquez sur l'instance de passerelle cible. Dans le volet de navigation de gauche, cliquez sur API, puis cliquez sur l'API cible.
Dans Routes, cliquez sur la route cible.
Cliquez sur l'onglet Configure Policy. Dans la section Inbound Processing, cliquez sur Enable Policy/Plug-in.
-
Cliquez sur la carte Retry. Dans le panneau Add Policy: Retry, configurez les paramètres et cliquez sur Add.
RemarqueAprès avoir configuré et activé la politique de nouvelle tentative, vérifiez qu'elle fonctionne comme prévu.
Paramètre
Description
Enable
Active ou désactive la politique de nouvelle tentative.
-
Enabled : La politique de nouvelle tentative est active.
-
Disabled : La politique de nouvelle tentative est inactive.
RemarqueSi cette politique est désactivée, la passerelle utilise une configuration de nouvelle tentative par défaut. Le nombre de nouvelles tentatives par défaut est de 2, et les conditions de nouvelle tentative par défaut sont
connect-failure,refused-stream,unavailable,cancelledetretriable-status-codes.Retry Times
Le nombre maximal de nouvelles tentatives pour une requête ayant échoué. Valeurs valides : 0 à 10. Une valeur inférieure ou égale à 2 est recommandée.
RemarqueUne valeur de 0 désactive les nouvelles tentatives.
Retry Condition
Les conditions qui déclenchent une nouvelle tentative. Vous pouvez sélectionner plusieurs conditions. Pour plus d'informations, consultez Conditions de nouvelle tentative.
Retry Status Code
Les codes d'état HTTP qui déclenchent une nouvelle tentative. Vous pouvez spécifier plusieurs codes.
RemarqueVous ne pouvez configurer le paramètre Retry Status Code que si
retriable-status-codesest sélectionné pour Retry Condition. -