Lorsque Cloud-native API Gateway traite une requête entrante, il évalue les règles de routage configurées par ordre décroissant de priorité. Si une requête correspond à une règle, la passerelle la transmet au service backend défini dans cette règle. Si aucune règle ne correspond, la passerelle renvoie une erreur 404.
Priorité de correspondance des routes
Les règles de priorisation sont les suivantes : Associated Domain Name > Path > Header > Query Parameters > Created At.
Selon le Associated Domain Name : plus la chaîne du domaine est longue, plus la priorité est élevée.
-
Selon le Path :
Pour différents types de Match Rule, la priorité est la suivante : Equals To > Prefix > Regular Expression Match.
Pour un même type de Match Rule, une chaîne de Path plus longue bénéficie d'une priorité supérieure.
Selon le nombre total de paires clé-valeur dans l'en-tête Header : plus le nombre de paires est élevé, plus la priorité est grande.
Selon le nombre total de paires clé-valeur dans les Query Parameters : plus le nombre de paires est élevé, plus la priorité est grande.
Selon la date de Created At : plus la création est ancienne, plus la priorité est élevée.
Les règles de routage de toutes les API d'une même instance sont triées conjointement lors de la mise en correspondance et évaluées selon les priorités précédentes. Les routes appartenant à différentes API suivent les mêmes règles tant qu'elles n'entrent pas en conflit.
Lorsqu'une API REST est publiée en tant que route préfixée, la passerelle ne génère pas une route par opération d'API. L'ensemble de l'API est regroupé en une seule route préfixée qui fait correspondre les requêtes selon le chemin de base effectif de l'API. Cette route participe ainsi aux règles de priorité susmentionnées en tant que route de correspondance par préfixe : une chaîne de chemin correspondant plus longue obtient une priorité supérieure, et une correspondance exacte prime sur une correspondance par préfixe, laquelle prime à son tour sur une correspondance par expression régulière.
Lorsque des routes générées par des API REST, des API HTTP et des API WebSocket coexistent sous la même passerelle et le même nom de domaine, la passerelle met d'abord en correspondance les routes d'API REST ordinaires, puis les routes d'API HTTP et d'API WebSocket, et enfin les API REST publiées en tant que routes préfixées. Si la portée de correspondance d'une route d'API HTTP ou d'API WebSocket chevauche celle d'une API REST publiée en tant que route préfixée, une route d'API HTTP ou d'API WebSocket entièrement correspondante est prioritaire.
Procédure
-
Cloud-native API Gateway propose deux méthodes pour créer des routes : depuis l'extérieur d'une instance ou depuis l'intérieur d'une instance.
Depuis l'extérieur de l'instance
Connectez-vous à la console Cloud-native API Gateway. Dans le volet de navigation de gauche, sélectionnez API. Dans la barre de menu supérieure, choisissez une région.
Cliquez sur l'API cible. Dans la liste déroulante qui s'affiche, sélectionnez l'instance où configurer la route, ou choisissez All Instances. Dans le menu déroulant All Instances en haut, sélectionnez l'instance cible.
Cliquez sur Create Route.
Depuis l'intérieur de l'instance
Connectez-vous à la console Cloud-native API Gateway. Dans le volet de navigation de gauche, sélectionnez Instance. Dans la barre de menu supérieure, choisissez une région.
Sur la page Instance, cliquez sur l'ID de l'instance de passerelle cible. Dans le volet de navigation de gauche, sélectionnez API, puis cliquez sur l'API cible.
Cliquez sur Create Route.
-
Sur la page Create Route, configurez les paramètres, puis cliquez sur Save ou Save and Publish.
RemarqueLes règles de correspondance sont combinées à l'aide d'un opérateur logique ET. Plus vous spécifiez de règles, plus la portée de correspondance est restreinte.
La priorité de correspondance des routes correspond à leur ordre d'affichage sur la page de configuration des routes.
Paramètre
Description
Route Name
Saisissez un nom personnalisé pour la route.
Route Description
Cliquez sur Add Route Description pour saisir une description de la route.
Domain Name
-
Sélectionnez un ou plusieurs domaines que la route doit mettre en correspondance.
-
Pour créer un nouveau domaine, cliquez sur Add Domain et créez-le dans le panneau qui s'affiche.
Path
Spécifie le paramètre de chemin dans la requête HTTP à mettre en correspondance.
-
Pour un même type de règle de correspondance, une chaîne de chemin plus longue bénéficie d'une priorité supérieure.
-
Pour différents types de règles de correspondance, la priorité est la suivante : Equals To > Prefix > Regular Expression Match.
-
Equals To : le chemin de la requête doit correspondre exactement. Par exemple, il doit être strictement égal à
/user. -
Prefix : le chemin de la requête doit commencer par le préfixe spécifié, par exemple
/user. -
Regular Expression Match : le chemin de la requête doit correspondre à l'expression régulière spécifiée.
-
Method
Spécifie le paramètre de méthode dans la requête HTTP à mettre en correspondance. Vous pouvez sélectionner plusieurs méthodes HTTP. La valeur par défaut est ANY.
Header
Spécifie les paramètres d'en-tête dans la requête HTTP à mettre en correspondance. Pour un même type de règle de correspondance, une règle comportant davantage de paramètres bénéficie d'une priorité supérieure.
Query Parameters
Spécifie les paramètres de requête dans la requête HTTP à mettre en correspondance. Pour un même type de règle de correspondance, une règle comportant davantage de paramètres bénéficie d'une priorité supérieure.
Instance
Sélectionnez l'instance Cloud-native API Gateway où la route prendra effet.
Scenario
Sélectionnez le type de service cible pour la route actuelle.
-
Basique : Single Service
-
Déploiement progressif (canary) : By Percentage (Multi-service), Tag (Tag-based Routing)
-
Autre : Mock, Redirect
Pour plus d'informations sur les différents types de services cibles, consultez la rubrique Routes.
RemarqueLa somme des pondérations de trafic pour tous les services cibles pondérés doit être égale à 100 %.
Backend Services
Sélectionnez un service backend associé et un port.
Remarque-
Cliquez sur Associated Service pour sélectionner une source et un service dans le panneau.
-
Les différents types de sources imposent des limites distinctes quant au nombre de sources que vous pouvez ajouter.
-
Vous pouvez ajouter un maximum de cinq sources pour Container Service for Kubernetes (ACK).
-
Vous ne pouvez ajouter qu'une seule source Nacos ou Zookeeper.
-
Timeout Period (seconds)
Saisissez la durée du délai d'expiration. La valeur par défaut est de 60 secondes. Une valeur de 0 indique l'absence de délai d'expiration.
Secours (Fallback)
Spécifiez un service de secours. Si le service backend d'une route ne dispose d'aucun nœud disponible, la passerelle achemine la requête d'origine vers le service de secours spécifié.
RemarqueActuellement, la fonctionnalité de secours est prise en charge uniquement entre des services HTTP.
Retry Times
Saisissez le nombre de tentatives. La valeur par défaut est 2. Une valeur de 0 désactive les nouvelles tentatives.
Retry Condition
Sélectionnez les conditions qui déclenchent une nouvelle tentative.
Retry Status Code
Ajoutez un ou plusieurs codes d'état qui déclenchent une nouvelle tentative.