Méthodes d’utilisation des 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.

Méthodes d’utilisation des 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 explique 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 ou ROUTING_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 faire correspondre toutes les demandes entrantes à votre nom de domaine personnalisé, n’ajoutez pas de condition.

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

  7. Choisissez Suivant.

  8. Dans le champ Priorité, saisissez un nombre pour votre priorité.

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

    Si vous créez une règle sans condition, nous vous recommandons d’utiliser une priorité é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 et x-version:beta, ainsi que le chemin de base PetStoreShopper vers l’API cible a1b2c3.

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" }

Modification de la priorité d’une règle de routage

Vous pouvez modifier la priorité d’une règle de routage. Cette modification 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, imaginons que vous définissiez 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 leur priorité des règle afin qu’API Gateway évalue la règle zzz000 en 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. Sous l’onglet Détails du routage, choisissez votre règle de routage, puis sélectionnez Modifier.

  5. Choisissez Suivant.

  6. Sous Priorité, saisissez 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" }