

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
<a name="apigateway-routing-rules-use"></a>

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
<a name="rest-api-routing-rules-create"></a>

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.](https://console.aws.amazon.com/apigateway)

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

1. Choisissez un nom de domaine personnalisé.

1. Dans l’onglet **Détails du routage**, choisissez **Ajouter une règle de routage**.

1. 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. 

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

1. Choisissez **Suivant**.

1. 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.

1. Choisissez **Créer une règle de routage**.

------
#### [ AWS CLI ]

La [create-routing-rule](https://docs.aws.amazon.com/cli/latest/reference/apigatewayv2/create-routing-rule.html)commande 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
<a name="rest-api-routing-rules-change-priority"></a>

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.](https://console.aws.amazon.com/apigateway)

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

1. Choisissez un nom de domaine personnalisé.

1. Sous l’onglet **Détails du routage**, choisissez votre règle de routage, puis sélectionnez **Modifier**. 

1. Choisissez **Suivant**.

1. Sous Priorité, saisissez la nouvelle priorité.

1. Sélectionnez **Enregistrer les modifications**.

------
#### [ AWS CLI ]

La [put-routing-rule](https://docs.aws.amazon.com/cli/latest/reference/apigatewayv2/put-routing-rule.html)commande suivante modifie la priorité d'une règle de routage`abc123`.

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

------