

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.

# Recréation d’un mappage d’API à l’aide de règles de routage
<a name="rest-api-routing-rules-recreate-api-mapping"></a>

Vous pouvez recréer un mappage d’API à l’aide de règles de routage. Pour recréer un mappage d’API, assurez-vous d’activer la suppression du chemin de base. Cela préserve le comportement des mappages d’API. Pour de plus amples informations, veuillez consulter [Suppression du chemin de base avec les conditions du chemin de base](rest-api-routing-rules.md#rest-api-routing-rules-condition-path-split).

Le tutoriel suivant explique comment recréer le mappage d’API `https:// api.example.com/orders/v2/items/categories/5` en tant que règle de routage, et comment mettre à jour vos journaux d’accès pour enregistrer l’ID de la règle de routage utilisée par API Gateway pour envoyer le trafic à votre API.

------
#### [ AWS Management Console ]

**Pour définir le mode de routage sur ROUTING\$1RULE\$1THEN\$1 API\$1MAPPING**

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 votre nom de domaine personnalisé.

1. Sous **Détails du domaine**, choisissez **Modifier**.

1. Pour le **mode de routage**, choisissez **API\$1MAPPINGROUTING\$1RULE\$1THEN\$1**.

1. Choisissez **Enregistrer**. 

Après avoir défini le mode de routage, vous allez créer la règle de routage.

**Pour créer la règle de routage**

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

1. Choisissez **Ajouter une condition**, puis **Chemin**.

1. Sous **Chemin**, saisissez **orders/v2/items/categories/5**.

1. Sous **Chemin de base de la bande**, choisissez **Actif**.

1. Sous **API cible**, choisissez votre API cible.

1. Sous **Étape cible**, choisissez votre étape cible.

1. Choisissez **Suivant**.

1. Sous Priorité, saisissez une priorité.

   Même si vous conservez votre mappage d’API, API Gateway utilisera toujours la nouvelle règle de routage, car les règles de routage ont toujours la priorité sur les mappages d’API.

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

Après avoir créé la règle de routage, mettez à jour le format du journal d’accès pour votre étape, ou créez un journal afin de vérifier qu’API Gateway utilise votre règle de routage pour envoyer le trafic à votre API.

**Pour mettre à jour vos journaux d’accès**

1. Connectez-vous à la console API Gateway à l'adresse [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Choisissez votre API.

1. Dans le volet de navigation principal, choisissez **Étapes**.

1. Sous **Journaux et traçage**, choisissez **Modifier**.

   Si vous n’avez pas de groupe de journaux, consultez [Configuration de la CloudWatch journalisation pour REST APIs dans API Gateway](set-up-logging.md).

1. Ajoutez **\$1context.customDomain.routingRuleIdMatched** à votre format de journal.

   Ce groupe de journaux enregistre l’ID de la règle de routage utilisée par API Gateway pour envoyer le trafic à votre API. Pour de plus amples informations, veuillez consulter [Je ne peux pas dire comment API Gateway a envoyé du trafic à mon APIs](rest-api-routing-rules-troubleshoot.md#rest-api-routing-rules-logging).

1. Choisissez **Enregistrer**.

Après avoir mis à jour vos journaux d’accès, invoquez votre nom de domaine personnalisé. Voici un exemple de commande curl permettant d’invoquer le nom de domaine personnalisé `https://api.example.com` avec le chemin de base `orders/v2/items/categories/5`.

```
curl "https://api.example.com/orders/v2/items/categories/5"
```

Après avoir invoqué avec succès votre nom de domaine personnalisé, vérifiez que CloudWatch Logs affiche le`routingRuleIdMatched`. Pour savoir comment utiliser la console CloudWatch Logs pour afficher un groupe de journaux, consultez[Afficher les événements du journal d'API Gateway dans la CloudWatch console](view-cloudwatch-log-events-in-cloudwatch-console.md).

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

1. Utilisez la [update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigatewayv2/update-domain-name.html)commande suivante pour mettre à jour le nom de domaine `api.example.com` afin d'utiliser le mode de routage`ROUTING_RULE_THEN_API_MAPPING`.

   ```
   aws apigatewayv2 update-domain-name \
     --domain-name 'api.example.com' \
     --routing-mode ROUTING_RULE_THEN_API_MAPPING
   ```

1. Utilisez la [create-routing-rule](https://docs.aws.amazon.com/cli/latest/reference/apigatewayv2/create-routing-rule.html)commande suivante pour créer une nouvelle règle de routage afin de recréer le mappage `https://api.example.com/orders/v2/items/categories/5` d'API.

   ```
   aws apigatewayv2 create-routing-rule \
     --domain-name 'api.example.com' \
     --priority 50 \
     --conditions '[
     {
       "MatchBasePaths": {
         "AnyOf": [
           "orders/v2/items/categories/5"
         ]
       }
     }
   ]' \
     --actions '[
     {
       "InvokeApi": {
         "ApiId": "a1b2c3",
         "Stage": "prod",
         "StripBasePath": true
       }
     }
   ]'
   ```

1. Utilisez la commande [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) suivante pour mettre à jour le format des journaux d’accès afin qu’il inclut la variable `$context.customDomain.routingRuleIdMatched`. Cette variable enregistre l’ID de la règle de routage utilisée par API Gateway pour envoyer le trafic à votre API. Vous allez utilisez ce journal pour vérifier qu’API Gateway utilise votre règle de routage pour envoyer le trafic à votre API. Pour de plus amples informations, veuillez consulter [Je ne peux pas dire comment API Gateway a envoyé du trafic à mon APIs](rest-api-routing-rules-troubleshoot.md#rest-api-routing-rules-logging).

   ```
   aws apigateway update-stage \
     --rest-api-id a1bc2c3 \
     --stage-name prod \
     --patch-operations "op=replace,path=/accessLogSettings/format,value='\$context.path \$context.customDomain.routingRuleIdMatched \$context.requestId \$context.extendedRequestId'"
   ```

   Si vous n’avez pas de groupe de journaux, consultez [Configuration de la CloudWatch journalisation pour REST APIs dans API Gateway](set-up-logging.md).

1. Utilisez l’exemple de commande curl suivant pour invoquer votre nom de domaine personnalisé à l’aide du chemin de base `orders/v2/items/categories/5`.

   ```
   curl "https://api.example.com/orders/v2/items/categories/5
   ```

1. Utilisez la [filter-log-events](https://docs.aws.amazon.com/cli/latest/reference/logs/filter-log-events.html)commande suivante pour obtenir les événements du journal à partir du groupe de journaux `access-log-group-orders` contenant l'ID de règle de routage`abc123`.

   ```
   aws logs filter-log-events --log-group-name access-log-group-orders --filter-pattern abc123
   ```

    Vous avez la confirmation qu’API Gateway a utilisé la règle de routage pour envoyer le trafic à votre API.

------