Comment utiliser les règles de routage - 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.

Comment utiliser les règles de routage

Vous pouvez créer une règle de routage à l'aide du AWS Management Console SDK ou de n'importe quel autre AWS SDK. AWS CLI Après avoir créé une règle, vous pouvez modifier sa priorité.

Création d'une règle de routage

La procédure suivante montre comment créer une règle de routage pour un nom de domaine personnalisé avec un mode de routage défini sur ROUTING_RULE_THEN_API_MAPPING ouROUTING_RULE_ONLY.

AWS Management Console
  1. Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.

  2. Sélectionnez Noms de domaine personnalisés dans le volet de navigation principal.

  3. Choisissez un nom de domaine personnalisé.

  4. Dans l'onglet Détails du routage, choisissez Ajouter une règle de routage.

  5. Choisissez Ajouter une nouvelle condition pour ajouter une nouvelle condition.

    Vous pouvez ajouter une condition d'en-tête ou de chemin de base. Pour associer toutes les demandes entrantes à votre nom de domaine personnalisé, n'ajoutez aucune condition.

  6. Pour Action, utilisez le menu déroulant pour sélectionner votre API cible et votre étape cible.

  7. Choisissez Suivant.

  8. Dans le champ de priorité, entrez un numéro pour votre priorité.

    API Gateway évalue les règles par ordre de priorité, de la valeur la plus faible à la valeur la plus élevée.

    Si vous créez une règle sans condition, nous vous recommandons d'utiliser une priorité à valeur élevée.

  9. Choisissez Créer une règle de routage.

AWS CLI

La create-routing-rulecommande suivante crée une règle de routage avec une priorité de 50. Dans cet exemple, API Gateway achemine toutes les demandes entrantes contenant les en-têtes Hello:World x-version:beta et le chemin de base PetStoreShopper vers l'API a1b2c3 cible.

aws apigatewayv2 create-routing-rule \ --domain-name 'api.example.com' \ --priority 50 \ --conditions '[ { "MatchHeaders": { "AnyOf": [ { "Header": "Hello", "ValueGlob": "World" } ] } }, { "MatchHeaders": { "AnyOf": [ { "Header": "x-version", "ValueGlob": "beta" } ] } }, { "MatchBasePaths": { "AnyOf": [ "PetStoreShopper" ] } } ]'\ --actions '[ { "InvokeApi": { "ApiId": "a1b2c3", "Stage": "prod" } } ]'

Le résultat se présente comme suit :

{ "Actions": [ { "InvokeApi": { "ApiId": "a1b2c3", "Stage": "prod", "StripBasePath": false } } ], "Conditions": [ { "MatchHeaders": { "AnyOf": [ { "Header": "Hello", "ValueGlob": "World" } ] } }, { "MatchHeaders": { "AnyOf": [ { "Header": "x-version", "ValueGlob": "beta" } ] } }, { "MatchBasePaths": { "AnyOf": [ "PetStoreShopper" ] } } ], "Priority": 50, "RoutingRuleArn": "arn:aws:apigateway:us-west-2:111122223333:/domainnames/api.example.com/routingrules/abc123", "RoutingRuleId": "abc123" }

Modifier la priorité d'une règle de routage

Vous pouvez modifier la priorité d'une règle de routage. Cela prend effet immédiatement et peut avoir un impact sur la manière dont les utilisateurs d'API invoquent vos noms de domaine personnalisés. Lorsque vous définissez les priorités de vos règles de routage, nous vous recommandons de laisser des espaces entre les règles.

Par exemple, considérez deux règles de routage, une règle abc123 avec une priorité de 50 et une règle zzz000 avec une priorité de 150. Pour modifier la priorité des règles afin qu'API Gateway évalue la règle en zzz000 premier, vous pouvez définir la priorité de la règle zzz000 sur 30.

AWS Management Console
  1. Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.

  2. Sélectionnez Noms de domaine personnalisés dans le volet de navigation principal.

  3. Choisissez un nom de domaine personnalisé.

  4. Dans l'onglet Détails du routage, choisissez votre règle de routage, puis sélectionnez Modifier.

  5. Choisissez Suivant.

  6. Dans le champ Priorité, entrez la nouvelle priorité.

  7. Sélectionnez Enregistrer les modifications.

AWS CLI

La put-routing-rulecommande suivante modifie la priorité d'une règle de routageabc123.

aws apigatewayv2 put-routing-rule \ --domain-name 'api.example.com' \ --priority 30 \ --routing-rule-id abc123 \ --conditions '[ { "MatchHeaders": { "AnyOf": [ { "Header": "Hello", "ValueGlob": "World" } ] } }, { "MatchHeaders": { "AnyOf": [ { "Header": "x-version", "ValueGlob": "beta" } ] } }, { "MatchBasePaths": { "AnyOf": [ "PetStoreShopper" ] } } ]'\ --actions '[ { "InvokeApi": { "ApiId": "a1b2c3", "Stage": "prod" } } ]'

Le résultat se présente comme suit :

{ "Actions": [ { "InvokeApi": { "ApiId": "a1b2c3", "Stage": "prod", "StripBasePath": false } } ], "Conditions": [ { "MatchHeaders": { "AnyOf": [ { "Header": "Hello", "ValueGlob": "World" } ] } }, { "MatchHeaders": { "AnyOf": [ { "Header": "x-version", "ValueGlob": "beta" } ] } }, { "MatchBasePaths": { "AnyOf": [ "PetStoreShopper" ] } } ], "Priority": 38, "RoutingRuleArn": "arn:aws:apigateway:us-west-2:111122223333:/domainnames/api.example.com/routingrules/abc123", "RoutingRuleId": "abc123" }