Aggiungere regole a un gateway
Le regole del gateway consentono di controllare il routing del traffico e di ignorare le configurazioni degli obiettivi sul gateway senza ridistribuire i target. Crei pacchetti di configurazione che sovrascrivono il comportamento di un target, quindi utilizzi le regole per controllare quale versione del pacchetto si applica a quale traffico. Le regole supportano anche l'instradamento delle richieste verso destinazioni diverse in base al percorso della richiesta o all'identità del chiamante.
Utilizza le regole del gateway per raggiungere i seguenti obiettivi:
-
Sperimenta con le versioni dei pacchetti di configurazione tramite test A/B
-
Aggiungi principi specifici a una versione del pacchetto di configurazione per il debug
-
Indirizza il traffico verso obiettivi specifici in base al percorso della richiesta o all'identità del chiamante
-
Imposta un pacchetto o un target di configurazione predefinito per tutto il traffico
Come funzionano le regole del gateway
Ogni regola gateway contiene i seguenti componenti:
| Componente | Description |
|---|---|
|
Priorità |
Un numero intero compreso tra 1 e 1.000.000. I numeri più bassi indicano una precedenza maggiore. Ogni valore di priorità deve essere univoco all'interno di un gateway. |
|
Conditions (Condizioni) (facoltativa) |
Criteri che determinano se la regola corrisponde a una richiesta. Una regola senza condizioni funge da catch-over che corrisponde a tutto il traffico. |
|
Azioni (obbligatorie) |
L'azione da intraprendere quando la regola corrisponde. È possibile sovrascrivere i pacchetti di configurazione, eseguire il routing verso obiettivi specifici o entrambi. |
|
Descrizione (facoltativa) |
Una descrizione testuale dello scopo della regola. |
Risoluzione delle regole
Il gateway valuta le regole in ordine di priorità crescente (prima i numeri più bassi). Il gateway risolve ogni tipo di azione in modo indipendente utilizzando la semantica della prima partita.
La tabella seguente mostra come il gateway risolve le regole per una richiesta di esempio. In questo esempio, il ruolo QA invia una richiesta a. /my-target-canary/chat
| Priorità | Condizioni | Azioni | Corrisponde alla richiesta? | Risultato |
|---|---|---|---|---|
|
100 |
Ruolo QA |
|
Sì |
Risolve |
|
200 |
Percorso |
|
Sì |
Risolve in |
|
1000000 |
Nessuno (catch-all) |
|
Sì |
Entrambi i tipi di azione sono già stati risolti. Ignorato. |
Risultato finale: la richiesta utilizza la versione A del pacchetto e indirizza verso. my-target-canary
Suggerimento
Lascia degli spazi tra i numeri di priorità (ad esempio 100, 200, 300) in modo da poter inserire le regole in un secondo momento senza rinumerare le regole esistenti.
Condizioni
Le condizioni determinano a quali richieste corrisponde una regola. Una regola può avere un massimo di 2 condizioni. Una regola senza condizioni corrisponde a tutto il traffico.
Il gateway supporta i seguenti tipi di condizioni:
- MatchPrincipal
-
Corrisponde alle richieste in base al principale IAM del chiamante. L'
anyOfelenco contiene da 1 a 100 voci. Ogni voce specifica eiamPrincipalcon i seguenti campi:-
arn— L'ARN principale IAM da abbinare. -
operator(opzionale) — L'operatore di confronto. I valori validi sonoStringEquals(default) eStringLike. Da utilizzareStringLikeper abbinare i caratteri jolly.
-
- MatchPaths
-
Corrisponde alle richieste in base al percorso della richiesta. L'
anyOfelenco contiene da 1 a 10 voci. Ogni voce deve utilizzare il formato/<targetName>/*, dove<targetName>corrisponde al nome di una destinazione HTTP esistente sul gateway. La destinazione deve essereReadyattiva. LamatchPathscondizione è supportata solo per i gateway con destinazioni HTTP. I seguenti prefissi di percorso riservati non sono consentiti:/mcp,,,/a2a,/responses./converse/.well-known
Logica di valutazione delle condizioni
-
All'interno di un tipo di condizione: il gateway utilizza la logica OR. Una richiesta corrisponde se soddisfa una voce dell'
anyOfelenco. -
Tra diversi tipi di condizioni: il gateway utilizza la logica AND. Se una regola ha entrambi
matchPrincipalsematchPaths, la richiesta deve corrispondere ad almeno una voce per ogni tipo di condizione.
Azioni
Le azioni definiscono cosa fa il gateway quando una regola corrisponde. Una regola può avere un massimo di 2 azioni.
Il gateway supporta i seguenti tipi di azioni:
- Il pacchetto di configurazione sostituisce ()
configurationBundle -
Sostituisci il pacchetto di configurazione applicato al traffico corrispondente.
-
staticOverride— Associa tutto il traffico corrispondente a una versione specifica del pacchetto di configurazione. Specificate l'ARN e l'ID della versione del pacchetto. -
weightedOverride— Suddivide il traffico tra due versioni del pacchetto di configurazione. L'trafficSplitelenco deve contenere esattamente 2 voci con pesi che sommano a 100. Il pacchetto di configurazione deve trovarsi nello stesso account del gateway.
-
- Routing di destinazione ()
routeToTarget -
Percorsi che abbinano il traffico a un obiettivo specifico. La destinazione deve utilizzare il protocollo HTTP ed essere in
Readystato.-
staticRoute— Indirizza tutto il traffico corrispondente a un target specifico in base al nome. -
weightedRoute— Suddivide il traffico tra due obiettivi. L'trafficSplitelenco deve contenere esattamente 2 voci con un peso pari a 100. I nomi delle voci di ripartizione del traffico devono essere univoci.
-
Limits
La tabella seguente elenca i limiti per le regole del gateway.
| Risorsa | Limite |
|---|---|
|
Regole per gateway |
20 |
|
Intervallo di priorità |
Da 1 a 1.000.000 |
|
Condizioni massime per regola |
2 |
|
Numero massimo di azioni per regola |
2 |
|
|
100 |
|
|
10 |
|
|
Esattamente 2 |
|
|
da 1 a 99 |