Exemples d’évaluation de règles de routage par API Gateway - Amazon API Gateway

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exemples d’évaluation de règles de routage par API Gateway

La section suivante présente quatre exemples d’évaluation de règles de routage et de mappages d’API par API Gateway.

Exemple 1 : règles de routage uniquement

Dans cet exemple, le mode de routage du nom de domaine personnalisé https://petstore.example.com est défini sur ROUTING_RULE_ONLY, et ce dernier possède les règles et priorités de routage suivantes.

ID de la règle Priority (Priorité) Conditions Action

abc123

10

Si la demande contient l’en-tête Hello:World

API cible 1

zzz000

50

Si la demande contient les en-têtes Accept:image/webp et Pet:Dog-*, et si le chemin de base contient PetStoreShopper

API cible 2

efg456

100

Aucune

API cible 3

Le tableau suivant montre comment API Gateway applique les règles de routage précédentes à des exemples de demande.

Requête API sélectionnée Explication

https://petstore.example.com -h "Hello:World"

API cible 1

La demande correspond à la règle de routage abc123.

https://petstore.example.com/PetStoreShopper -h "Hello:World", "Pet:Dog-Bella", "Accept:image/webp"

API cible 1

API Gateway évalue toutes les règles de routage par ordre de priorité. La règle de routage abc123 a la priorité la plus élevée et les conditions correspondent. API Gateway invoque donc l’API cible 1.

Bien que les conditions de la demande correspondent également à la règle de routage zzz000, API Gateway n’évalue aucune autre règle de routage après avoir identifié une correspondance.

https://petstore.example.com/PetStoreShopper -h "Pet:Dog-Bella", "Accept:image/webp"

API cible 2

La demande correspond à la règle de routage zzz000. Il y a correspondance, car Pet:Dog-Bella correspond à la chaîne Pet:Dog-*

https://petstore.example.com/PetStoreShopper -h "Pet:Dog-Bella"

API cible 3

La demande ne correspond pas à la règle de routage abc123. La demande ne correspond pas à la règle de routage zzz000, car tous les en-têtes requis ne sont pas présents. La règle de priorité suivante correspond à toutes les demandes entrantes. API Gateway invoque donc l’API cible 3.

Exemple 2 : règles de routage et mappages d’API

Dans cet exemple, le mode de routage du nom de domaine personnalisé https://petstore.diagram.example.com est défini sur ROUTING_RULE_THEN_API_MAPPING, et ce dernier possède les règles de routage et mappages d’API suivants.

ID de la règle Priority (Priorité) Conditions Action

abc123

1

Si la demande contient pets

Invoquer l’étape Prod de l’API PetStore.

000zzz

5

Si la demande contient l’en-tête Cookie:*ux=beta* et si le chemin de base contient /refunds

Invoquer l’étape Beta de l’API Refunds.

Le tableau suivant présente les mappages d’API pour https://petstore.backup.example.com.

Mappage d’API API sélectionnée

/refunds

Invoquer l’étape Prod de l’API Refunds.

(none)

Invoquer l’étape Prod de l’API Search.

Le schéma suivant montre comment API Gateway applique les règles de routage et les mappages d’API précédents à des exemples de demande. Ces exemples sont résumés dans le tableau qui suit ce schéma.

Schéma d’application des règles de routage et des mappages d’API précédents par API Gateway.

Le tableau suivant montre comment API Gateway applique les règles de routage et les mappages d’API précédents à des exemples de demande.

Requête API sélectionnée Explication

https://petstore.diagram.com/pets

Étape Prod de l’API PetStore.

La demande correspond à la règle de routage abc123.

https://petstore.diagram.example.com/refunds -h "Cookie:lang=en-us;ux=beta"

Étape Beta de l’API Refunds.

La demande correspond à la règle de routage 000zzz. L’en-tête Cookie contient la bonne correspondance *contains* et le bon chemin de base pour cette condition.

https://petstore.diagram.example.com/refunds

Étape Prod de l’API Refunds.

La demande ne possède pas les en-têtes requis pour correspondre à la règle de routage zzz000. Si API Gateway ne parvient pas à identifier de correspondance avec la règle de routage, il passe aux mappages d’API. API Gateway peut mapper le chemin de base à l’étape Prod de l’API Refunds.

https://petstore.diagram.example.com/

Étape Prod de l’API Search.

La demande correspond au mappage de l’API vers le chemin vide (none).

Exemple 3 : règles de routage et mappages d’API à plusieurs niveaux

Dans cet exemple, le mode de routage du nom de domaine personnalisé https://petstore.backup.example.com est défini sur ROUTING_RULE_THEN_API_MAPPING, et ce dernier possède les règles de routage et mappages d’API suivants.

Le tableau suivant présente les règles de routage pour https://petstore.backup.example.com.

ID de la règle Priority (Priorité) Conditions Action

abc123

10

Si la demande contient l’en-tête Hello:World

API cible 1

000zzz

50

Si la demande contient les en-têtes Accept:image/webp et Pet:Dog-*, et si le chemin de base contient PetStoreShopper

API cible 2

Le tableau suivant présente les mappages d’API pour https://petstore.backup.example.com.

Mappage d’API API sélectionnée

PetStoreShopper

API cible 3

PetStoreShopper/cats

API cible 4

Le tableau suivant montre comment API Gateway applique les règles de routage et les mappages d’API précédents à des exemples de demande.

Requête API sélectionnée Explication

https://petstore.example.com/PetStoreShopper -h "Accept:image/webp", "Pet:Cats"

API cible 3

La demande ne possède pas les en-têtes requis pour correspondre à la règle de routage zzz000. Si API Gateway ne parvient pas à identifier de correspondance avec la règle de routage, il passe aux mappages d’API. API Gateway peut mapper le chemin de base à l’API cible 3.

https://petstore.example.com/PetStoreShopper/cats -h "Hello:World"

API cible 1

La demande correspond à la règle de routage abc123. Si le mode de routage est défini sur ROUTING_RULE_THEN_API_MAPPING, les règles de routage ont toujours la priorité sur les mappages d’API.

https://petstore.example.com/Admin -h "Pet:Dog-Bella"

Aucune

La demande ne correspond à aucune règle de routage ni à aucun mappage d’API. En l’absence de règle de routage par défaut, API Gateway rejette l’appel et envoie à l’appelant le code d’état 403 Forbidden.

Exemple 4 : règles de routage pour les noms de domaine génériques

Dans cet exemple, le nom de domaine personnalisé https://*.example.com est un nom de domaine générique. Le caractère générique prend en charge tous les sous-domaines renvoyant vers le même domaine. Les exemples de règles de routage suivants modifient ce comportement pour permettre aux sous-domaines d'être acheminés vers une cible différente à l'aide APIs de l'Hosten-tête.

Le tableau suivant présente les règles de routage pour https://*.example.com.

ID de la règle Priority (Priorité) Conditions Action

abc123

10

Si la demande contient l’en-tête Host:a.example.com

API cible 1

000zzz

50

Si la demande contient l’en-tête Host:b.example.com

API cible 2

efg456

500

Aucune

API cible 3

Le tableau suivant montre comment API Gateway applique les règles de routage précédentes à des exemples de demande.

Requête API sélectionnée Explication

https://a.example.com

API cible 1

L’en-tête Host est a.example.com. Cette demande correspond à la règle de routage abc123.

https://b.example.com

API cible 2

L’en-tête Host est b.example.com. Cette demande correspond à la règle de routage 000zzz.

https://testing.example.com

API cible 3

Cette demande correspond à la règle de routage fourre-tout efg456.