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
Accedi alla console API Gateway all'indirizzo https://console.aws.amazon.com/apigateway.
Scegliere Custom Domain Names (Nomi di dominio personalizzati) nel riquadro di navigazione principale.
-
Scegliere un nome di dominio personalizzato.
-
Nella scheda Dettagli di routing, scegli Aggiungi regola di routing.
-
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.
Per Azione, utilizza il menu a discesa per selezionare l'API di destinazione e la fase di destinazione.
-
Scegli Next (Successivo).
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.
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
-
Accedi alla console API Gateway all'indirizzo https://console.aws.amazon.com/apigateway.
Scegliere Custom Domain Names (Nomi di dominio personalizzati) nel riquadro di navigazione principale.
-
Scegliere un nome di dominio personalizzato.
-
Nella scheda Dettagli di routing, scegli la regola di routing, quindi scegli Modifica.
-
Scegli Next (Successivo).
-
Per priorità, inserisci la nuova priorità.
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"
}