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

Come utilizzare le regole di routing

Puoi creare una regola di routing utilizzando o qualsiasi AWS SDK. Console di gestione AWS AWS CLI Dopo aver creato una regola, è possibile modificarne la priorità.

Creazione di una regola di routing

La procedura seguente mostra come creare una regola di routing per un nome di dominio personalizzato con la modalità di routing impostata su ROUTING_RULE_THEN_API_MAPPING o ROUTING_RULE_ONLY.

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

  4. Nella scheda Dettagli di routing, scegliere Aggiungi una regola di routing.

  5. Scegliere Aggiungi una nuova condizione per aggiungere una nuova condizione.

    È possibile aggiungere una condizione di intestazione o di percorso di base. Per eseguire la corrispondenza di tutte le richieste in entrata al nome di dominio personalizzato, non aggiungere condizioni.

  6. Per Azione, selezionare nel menu a discesa l’API e la fase di destinazione.

  7. Scegli Next (Successivo).

  8. Nel campo Priorità, immettere un numero per la priorità.

    Gateway API valuta le regole in ordine di priorità, dal valore più basso a quello più alto.

    Se si crea una regola senza condizioni, è consigliabile utilizzare una priorità con valore elevato.

  9. Scegliere Crea una regola di routing.

AWS CLI

Il create-routing-rulecomando seguente crea una regola di routing con una priorità di 50. In questo esempio, Gateway API instrada tutte le richieste in entrata che hanno le intestazioni Hello:World e x-version:beta e il percorso di base PetStoreShopper all’API di destinazione 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" } } ]'

L'output sarà simile al seguente.

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

Modifica della priorità di una regola di routing

È possibile modificare la priorità di una regola di routing. La modifica ha effetto immediato e potrebbe influire sul modo in cui gli utenti delle API invocano i nomi di dominio personalizzati. Quando si impostano le priorità delle regole di routing, è consigliabile lasciare degli spazi vuoti tra le regole.

Ad esempio, si considerino due regole di routing, una regola abc123 con la priorità 50 e una regola zzz000 con la priorità 150. Per modificare la priorità delle regole in modo che Gateway API valuti prima la regola zzz000, è possibile impostare la priorità della regola zzz000 su 30.

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

  4. Nella scheda Dettagli di routing, scegliere la regola di routing, quindi scegliere Modifica.

  5. Scegli Next (Successivo).

  6. Per Priorità, immettere la nuova priorità.

  7. Scegli Save changes (Salva modifiche).

AWS CLI

Il put-routing-rulecomando seguente modifica la priorità di una regola di routing. 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" } } ]'

L'output sarà simile al seguente:

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