Nuova creazione di una mappatura API utilizzando le regole di routing - Gateway Amazon API

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

Nuova creazione di una mappatura API utilizzando le regole di routing

È possibile creare nuovamente una mappatura API utilizzando le regole di routing. Per creare nuovamente una mappatura API, è necessario attivare l’eliminazione del percorso di base. Questo approccio preserva il comportamento delle mappature API. Per ulteriori informazioni, consulta Eliminazione del percorso di base con le condizioni di percorso base.

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

Console di gestione AWS
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. Scegliere il nome di dominio personalizzato.

  4. Per Dettagli del dominio, scegliere Modifica.

  5. Per la modalità Routing, scegliete ROUTING_RULE_THEN_. API_MAPPING

  6. Seleziona Salva

Dopo aver impostato la modalità di routing, si crea la regola di routing.

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

  2. Scegliere Aggiungi una nuova condizione e quindi scegliere Percorso.

  3. Per Percorso, immettere orders/v2/items/categories/5.

  4. Per Percorso base della striscia, scegliere Attivo.

  5. Per API di destinazione, scegliere l’API di destinazione desiderata.

  6. Per Fase di destinazione, scegliere la fase di destinazione desiderata.

  7. Scegli Next (Successivo).

  8. Per Priorità, immettere una priorità.

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

  9. Scegli Save changes (Salva modifiche).

Dopo aver creato la regola di routing, si aggiorna il formato del log di accesso per la fase o si crea un nuovo log per verificare che Gateway API utilizzi la regola di routing per inviare traffico all’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 Log e tracciamento, scegliere Modifica.

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

  5. Aggiungere $context.customDomain.routingRuleIdMatched al formato dei log.

    Questo gruppo di log registra l’ID della regola di routing utilizzato da Gateway API 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, si invoca del nome di dominio personalizzato. Di seguito è riportato un esempio di comando curl per invocare 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 Logs mostri il. CloudWatch 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. Utilizza 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 Gateway API per inviare il traffico all’API. Questo log si usa per verificare che Gateway API utilizzi la regola di routing per inviare traffico all’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 è disponibile un gruppo di log, consulta Configurare la CloudWatch registrazione per REST APIs in API Gateway.

  4. Utilizza il seguente comando curl di esempio per invocare il 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

    Questo comando conferma che Gateway API utilizza la regola di routing per inviare traffico all’API.