Ricrea una mappatura delle API utilizzando le regole di routing - Amazon API Gateway

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Ricrea una mappatura delle API utilizzando le regole di routing

È possibile ricreare una mappatura delle API utilizzando le regole di routing. Per ricreare una mappatura delle API, assicurati di attivare lo striping del percorso di base. Ciò preserva il comportamento delle mappature delle API. Per ulteriori informazioni, consulta Rimuovi il percorso di base con le condizioni del percorso base.

Il seguente tutorial mostra come ricreare la mappatura delle API https:// api.example.com/orders/v2/items/categories/5 come regola di routing e come aggiornare i log di accesso per registrare la regola di routing che l'ID API Gateway utilizza per inviare traffico all'API.

AWS Management Console
Per impostare la modalità di routing su ROUTING_RULE_THEN_ API_MAPPING
  1. Accedi alla console API Gateway all'indirizzo https://console.aws.amazon.com/apigateway.

  2. Scegliere Custom Domain Names (Nomi di dominio personalizzati) nel riquadro di navigazione principale.

  3. Scegli il tuo nome di dominio personalizzato.

  4. Per i dettagli del dominio, scegli Modifica.

  5. Per la modalità Routing, scegliete API_MAPPINGROUTING_RULE_THEN_.

  6. Seleziona Salva

Dopo aver impostato la modalità di routing, create la regola di routing.

Per creare la regola di routing
  1. Nella scheda Dettagli di routing, scegli Aggiungi regola di routing.

  2. Scegli Aggiungi nuova condizione, quindi scegli Percorso.

  3. Per Path, inserisciorders/v2/items/categories/5.

  4. Per Strip base path, scegliete Active.

  5. Per Target API, scegli la tua API di destinazione.

  6. Per Target stage, scegli la tua fase di destinazione.

  7. Scegli Next (Successivo).

  8. Per priorità, inserisci una priorità.

    Anche se mantieni la mappatura delle API esistente, API Gateway utilizzerà sempre la nuova regola di routing poiché le regole di routing hanno sempre la priorità sulle mappature delle API.

  9. Scegli Save changes (Salva modifiche).

Dopo aver creato la regola di routing, aggiorna il formato del log di accesso per lo stage o crea un nuovo registro per confermare che API Gateway utilizza la regola di routing per inviare traffico alla tua API.

Per aggiornare i log di accesso
  1. Accedi alla console API Gateway all'indirizzo https://console.aws.amazon.com/apigateway.

  2. Scegliere l'API.

  3. Nel riquadro di navigazione principale scegli Fasi.

  4. Per Registri e tracciamento, scegli Modifica.

    Se non disponi di un gruppo di log, consulta. Configurare la CloudWatch registrazione per REST APIs in API Gateway

  5. Aggiungi $context.customDomain.routingRuleIdMatched al tuo formato di registro.

    Questo gruppo di log registra l'ID della regola di routing utilizzata da API Gateway per inviare il traffico all'API. Per ulteriori informazioni, consulta Non riesco a capire come API Gateway abbia inviato il traffico al mio APIs.

  6. Scegli Save (Salva).

Dopo aver aggiornato i log di accesso, richiama il nome di dominio personalizzato. Di seguito è riportato un esempio di comando curl per richiamare il nome di dominio personalizzato https://api.example.com con il percorso di base. orders/v2/items/categories/5

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

Dopo aver richiamato con successo il nome di dominio personalizzato, conferma che CloudWatch Logs mostri il. routingRuleIdMatched Per informazioni su come utilizzare la console CloudWatch Logs per visualizzare un gruppo di log, consulta. Visualizza gli eventi di registro dell'API Gateway nella CloudWatch console

AWS CLI
  1. Utilizzare il update-domain-namecomando seguente per aggiornare il nome di dominio in api.example.com modo da utilizzare la modalità di routing. ROUTING_RULE_THEN_API_MAPPING

    aws apigatewayv2 update-domain-name \ --domain-name 'api.example.com' \ --routing-mode ROUTING_RULE_THEN_API_MAPPING
  2. Utilizzare il create-routing-rulecomando seguente per creare una nuova regola di routing per ricreare la mappatura delle 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. Utilizzate il seguente comando update-stage per aggiornare il formato dei log di accesso in modo da includere la variabile. $context.customDomain.routingRuleIdMatched Questa variabile registra l'ID della regola di routing utilizzata da API Gateway per inviare il traffico all'API. Utilizzi questo registro per confermare che API Gateway utilizza la tua regola di routing per inviare traffico alla tua API. Per ulteriori informazioni, consulta Non riesco a capire come API Gateway abbia inviato il traffico al mio APIs.

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

    Se non disponi di un gruppo di log, consultaConfigurare la CloudWatch registrazione per REST APIs in API Gateway.

  4. Usa il seguente comando curl di esempio per richiamare il tuo nome di dominio personalizzato con il percorso di base. orders/v2/items/categories/5

    curl "https://api.example.com/orders/v2/items/categories/5
  5. Utilizzate il filter-log-eventscomando seguente per ottenere gli eventi di registro dal gruppo di log access-log-group-orders che contiene l'ID della regola di routing. abc123

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

    Ciò conferma che API Gateway ha utilizzato la regola di routing per inviare traffico all'API.