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

Come usare le regole di routing

È possibile creare una regola di routing utilizzando o qualsiasi AWS CLI AWS SDK. AWS Management Console Dopo aver creato una regola, puoi modificarne la priorità.

Crea una regola di routing

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

AWS Management Console
  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, scegli Aggiungi regola di routing.

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

    Puoi aggiungere un'intestazione o una condizione del percorso di base. Per abbinare tutte le richieste in arrivo al tuo nome di dominio personalizzato, non aggiungere alcuna condizione.

  6. Per Azione, utilizza il menu a discesa per selezionare l'API di destinazione e la fase di destinazione.

  7. Scegli Next (Successivo).

  8. Nel campo priorità, inserisci un numero per la tua priorità.

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

    Se stai creando una regola senza una condizione, ti consigliamo di utilizzare una priorità con un valore elevato.

  9. Scegli Crea regola di routing.

AWS CLI

Il create-routing-rulecomando seguente crea una regola di routing con una priorità di 50. In questo esempio, API Gateway indirizza tutte le richieste in entrata che hanno le intestazioni Hello:World 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 la priorità di una regola di routing

È possibile modificare la priorità di una regola di routing. Ciò ha effetto immediato e potrebbe influire sul modo in cui gli utenti delle API richiamano i nomi di dominio personalizzati. Quando imposti le priorità delle regole di routing, ti consigliamo di lasciare degli spazi tra le regole.

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

AWS Management Console
  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, scegli la regola di routing, quindi scegli Modifica.

  5. Scegli Next (Successivo).

  6. Per priorità, inserisci la nuova priorità.

  7. Scegli Save changes (Salva modifiche).

AWS CLI

Il put-routing-rulecomando seguente modifica la priorità di una regola abc123 di routing.

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