Recréation d’un mappage d’API à l’aide de règles de routage - Amazon API Gateway

Recréation d’un mappage d’API à l’aide de règles de routage

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 plus d’informations, consultez Suppression du chemin de base avec les conditions du chemin de base.

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

  4. Sous Détails du domaine, choisissez Modifier.

  5. Sous Mode de routage, choisissez ROUTING_RULE_THEN_API_MAPPING.

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

  2. Choisissez Ajouter une condition, puis Chemin.

  3. Sous Chemin, saisissez orders/v2/items/categories/5.

  4. Sous Chemin de base de la bande, choisissez Actif.

  5. Sous API cible, choisissez votre API cible.

  6. Sous Étape cible, choisissez votre étape cible.

  7. Choisissez Suivant.

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

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

  2. Choisissez votre API.

  3. Dans le volet de navigation principal, choisissez Étapes.

  4. Sous Journaux et traçage, choisissez Modifier.

    Si vous n’avez pas de groupe de journaux, consultez Configuration de la journalisation CloudWatch pour les API REST dans API Gateway.

  5. Ajoutez $context.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 plus d’informations, consultez Je ne sais pas comment API Gateway a envoyé le trafic à mes API.

  6. 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 routingRuleIdMatched. Pour découvrir comment utiliser la console CloudWatch Logs dans le but d’afficher un groupe de journaux, consultez Affichage des événements des journaux API Gateway dans la console CloudWatch.

AWS CLI
  1. Utilisez la commande update-domain-name suivante pour mettre à jour le nom de domaine api.example.com afin qu’il utilise 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
  2. Utilisez la commande create-routing-rule suivante pour créer une règle de routage dans le but de recréer le mappage d’API https://api.example.com/orders/v2/items/categories/5.

    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 } } ]'
  3. Utilisez la commande update-stage 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 plus d’informations, consultez Je ne sais pas comment API Gateway a envoyé le trafic à mes API.

    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 journalisation CloudWatch pour les API REST dans API Gateway.

  4. 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
  5. Utilisez la commande filter-log-events suivante pour obtenir les événements du groupe de journaux access-log-group-orders contenant l’ID de la 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.