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
Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.
Sélectionnez Noms de domaine personnalisés dans le volet de navigation principal.
-
Choisissez un nom de domaine personnalisé.
-
Dans l'onglet Détails du routage, choisissez Ajouter une règle de routage.
-
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.
Pour Action, utilisez le menu déroulant pour sélectionner votre API cible et votre étape cible.
-
Choisissez Suivant.
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.
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
-
Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.
Sélectionnez Noms de domaine personnalisés dans le volet de navigation principal.
-
Choisissez un nom de domaine personnalisé.
-
Dans l'onglet Détails du routage, choisissez votre règle de routage, puis sélectionnez Modifier.
-
Choisissez Suivant.
-
Dans le champ Priorité, entrez la nouvelle priorité.
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"
}