- Risorsa: GrpcRoute
- RouteRule
- RouteMatch
- MethodMatch
- Tipo
- HeaderMatch
- Tipo
- RouteAction
- Destinazione
- FaultInjectionPolicy
- Ritardo
- Interrompi
- RetryPolicy
- StatefulSessionAffinityPolicy
- Metodi
Risorsa: GrpcRoute
GrpcRoute è la risorsa che definisce il modo in cui viene instradato il traffico gRPC da una risorsa Mesh o Gateway.
Rappresentazione JSON |
---|
{
"name": string,
"selfLink": string,
"createTime": string,
"updateTime": string,
"labels": {
string: string,
...
},
"description": string,
"hostnames": [
string
],
"meshes": [
string
],
"gateways": [
string
],
"rules": [
{
object ( |
Campi | |
---|---|
name |
Obbligatorio. Nome della risorsa GrpcRoute. Corrisponde al pattern |
selfLink |
Solo output. URL definito dal server di questa risorsa |
createTime |
Solo output. Timestamp di creazione della risorsa. Un timestamp in formato "Zulu" UTC RFC3339, con risoluzione a livello di nanosecondo e fino a nove cifre frazionarie. Esempi: |
updateTime |
Solo output. Timestamp dell'aggiornamento della risorsa. Un timestamp nel formato RFC3339 UTC "Zulu" con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: |
labels |
Facoltativo. Set di tag etichetta associati alla risorsa GrpcRoute. Un oggetto contenente un elenco di |
description |
Facoltativo. Una descrizione in testo libero della risorsa. Lunghezza massima: 1024 caratteri. |
hostnames[] |
Obbligatorio. Nomi host dei servizi con una porta facoltativa per la quale la route descrive il traffico. Formato: Il nome host è il nome di dominio completo di un host di rete. Corrisponde alla definizione di un nome host secondo RFC 1123 con due eccezioni importanti: - Gli IP non sono consentiti. - Un nome host può essere preceduto da un'etichetta con caratteri jolly ( Il nome host può essere "preciso", ovvero un nome di dominio senza il punto finale di un host di rete (ad es. Tieni presente che, secondo RFC1035 e RFC1123, un'etichetta deve essere composta da caratteri alfanumerici minuscoli o "-" e deve iniziare e terminare con un carattere alfanumerico. Non è consentita altra punteggiatura. Le route associate a un mesh o a un gateway devono avere nomi host univoci. Se tenti di collegare più route con nomi host in conflitto, la configurazione verrà rifiutata. Ad esempio, sebbene sia accettabile che i percorsi per i nomi host Se viene specificata una porta, i client gRPC devono utilizzare l'URI del canale con la porta per soddisfare questa regola (ad es. "xds:///service:123"), altrimenti devono fornire l'URI senza una porta (ad es. "xds:///service"). |
meshes[] |
Facoltativo. Meshes definisce un elenco di mesh a cui è associato questo GrpcRoute, come una delle regole di routing per instradare le richieste servite dal mesh. Ogni riferimento mesh deve corrispondere al pattern: |
gateways[] |
Facoltativo. I gateway definiscono un elenco di gateway a cui è collegato questo GrpcRoute, come una delle regole di routing per instradare le richieste gestite dal gateway. Ogni riferimento al gateway deve corrispondere al pattern: |
rules[] |
Obbligatorio. Un elenco di regole dettagliate che definiscono la modalità di routing del traffico. All'interno di un singolo GrpcRoute, verrà eseguito il valore GrpcRoute.RouteAction associato al primo GrpcRoute.RouteRule corrispondente. Devi specificare almeno una regola. |
RouteRule
Descrive come indirizzare il traffico.
Rappresentazione JSON |
---|
{ "matches": [ { object ( |
Campi | |
---|---|
matches[] |
Facoltativo. Le corrispondenze definiscono le condizioni utilizzate per associare la regola alle richieste gRPC in entrata. Ogni corrispondenza è indipendente, ovvero questa regola verrà associata se viene soddisfatta UNA qualsiasi delle corrispondenze. Se non viene specificato alcun campo corrispondente, questa regola corrisponderà incondizionatamente il traffico. |
action |
Obbligatorio. Una regola dettagliata che definisce come instradare il traffico. Questo campo è obbligatorio. |
RouteMatch
Criteri per la corrispondenza del traffico. Un RouteMatch viene considerato corrispondente quando tutti i campi forniti corrispondono.
Rappresentazione JSON |
---|
{ "headers": [ { object ( |
Campi | |
---|---|
headers[] |
Facoltativo. Specifica una raccolta di intestazioni da abbinare. |
method |
Facoltativo. Un metodo gRPC da utilizzare per la corrispondenza. Se questo campo è vuoto o omesso, corrisponderà a tutti i metodi. |
MethodMatch
Specifica una corrispondenza con un metodo.
Rappresentazione JSON |
---|
{
"type": enum ( |
Campi | |
---|---|
type |
Facoltativo. Specifica la modalità di corrispondenza al nome. Se non specificato, il valore predefinito è "EXACT" . |
grpcService |
Obbligatorio. Nome del servizio da abbinare. Se non specificato, corrisponderà a tutti i servizi. |
grpcMethod |
Obbligatorio. Nome del metodo da associare. Se non specificato, corrisponderà a tutti i metodi. |
caseSensitive |
Facoltativo. Specifica che le corrispondenze sono sensibili alle maiuscole. Il valore predefinito è true. caseSensitive non deve essere utilizzato con un tipo di REGULAR_EXPION. |
Tipo
Il tipo di corrispondenza.
Enum | |
---|---|
TYPE_UNSPECIFIED |
Non specificato. |
EXACT |
Corrisponde solo al nome esatto fornito. |
REGULAR_EXPRESSION |
Interpreta grpcMethod e grpcService come regex. La sintassi RE2 è supportata. |
HeaderMatch
Una corrispondenza con un insieme di intestazioni.
Rappresentazione JSON |
---|
{
"type": enum ( |
Campi | |
---|---|
type |
Facoltativo. Specifica la modalità di corrispondenza con il valore dell'intestazione. Se non specificato, viene utilizzato il valore predefinito EXACT. |
key |
Obbligatorio. La chiave dell'intestazione. |
value |
Obbligatorio. Il valore dell'intestazione. |
Tipo
Il tipo di corrispondenza.
Enum | |
---|---|
TYPE_UNSPECIFIED |
Non specificato. |
EXACT |
Corrisponderà solo al valore esatto fornito. |
REGULAR_EXPRESSION |
Corrisponde ai percorsi conformi al prefisso specificato per valore. La sintassi RE2 è supportata. |
RouteAction
Specifica come instradare il traffico corrispondente.
Rappresentazione JSON |
---|
{ "destinations": [ { object ( |
Campi | |
---|---|
destinations[] |
Facoltativo. I servizi di destinazione a cui deve essere inoltrato il traffico. Se vengono specificate più destinazioni, il traffico verrà suddiviso tra i servizi di backend in base al campo di peso di queste destinazioni. |
faultInjectionPolicy |
Facoltativo. La specifica per l'iniezione di errori introdotta nel traffico per testare la resilienza dei client al fallimento del servizio di destinazione. Nell'ambito dell'iniezione di errori, quando i client inviano richieste a una destinazione, è possibile introdurre ritardi in una percentuale di richieste prima di inviarle al servizio di destinazione. Analogamente, le richieste da parte dei client possono essere interrotte per una percentuale di richieste. timeout e retryPolicy verranno ignorati dai client configurati con un criterio faultInjectionPolicy |
timeout |
Facoltativo. Specifica il timeout per il percorso selezionato. Il timeout viene calcolato dal momento in cui la richiesta è stata completamente elaborata (ovvero alla fine dello stream) fino al momento in cui la risposta è stata completamente elaborata. Il timeout include tutti i nuovi tentativi. Una durata in secondi con un massimo di nove cifre frazionarie, che termina con " |
retryPolicy |
Facoltativo. Specifica il criterio di nuovo tentativo associato a questo percorso. |
statefulSessionAffinity |
Facoltativo. Specifica affinità sessione stateful basata sui cookie. |
idleTimeout |
Facoltativo. Specifica il timeout inattivo per il percorso selezionato. Il timeout inattivo è definito come il periodo in cui non vengono inviati o ricevuti byte sulla connessione upstream o downstream. Se non viene configurato, il timeout predefinito per inattività è 1 ora. Se impostato su 0 secondi, il timeout verrà disattivato. Una durata in secondi con un massimo di nove cifre frazionarie, che termina con " |
Destinazione
La destinazione a cui verrà instradato il traffico.
Rappresentazione JSON |
---|
{ // Union field |
Campi | |
---|---|
Campo unione destination_type . Specifica il tipo di destinazione a cui verrà indirizzato il traffico. destination_type può essere solo uno dei seguenti: |
|
serviceName |
Obbligatorio. L'URL di un servizio di destinazione a cui instradare il traffico. Deve fare riferimento a BackendService o ServiceDirectoryService. |
weight |
Facoltativo. Specifica la proporzione di richieste inoltrate al backend a cui fa riferimento il campo serviceName. Questo valore viene calcolato come segue: - peso/Somma(pesi in questo elenco di destinazioni). Per i valori diversi da zero, potrebbe esserci un'epsilon rispetto alla proporzione esatta definita qui, a seconda della precisione supportata da un'implementazione. Se viene specificato un solo serviceName e ha un peso maggiore di 0, il 100% del traffico viene inoltrato a quel backend. Se i pesi vengono specificati per un nome di servizio, devono essere specificati per tutti. Se i pesi non sono specificati per tutti i servizi, il traffico viene distribuito in proporzioni uguali a tutti. |
FaultInjectionPolicy
La specifica per l'iniezione di errori introdotta nel traffico per testare la resilienza dei client al fallimento del servizio di destinazione. Nell'ambito della fault injection, quando i client inviano richieste a una destinazione, è possibile introdurre ritardi su una percentuale di richieste prima di inviare queste richieste al servizio di destinazione. Analogamente, le richieste da parte dei client possono essere interrotte per una percentuale di richieste.
Rappresentazione JSON |
---|
{ "delay": { object ( |
Campi | |
---|---|
delay |
La specifica per il ritardo di inserimento nelle richieste del client. |
abort |
La specifica per l'interruzione delle richieste del client. |
Ritardo
Specifica del modo in cui le richieste del client vengono ritardate nell'ambito dell'iniezione di errori prima di essere inviate a una destinazione.
Rappresentazione JSON |
---|
{ "fixedDelay": string, "percentage": integer } |
Campi | |
---|---|
fixedDelay |
Specifica un ritardo fisso prima di inoltrare la richiesta. Una durata in secondi con un massimo di nove cifre frazionarie, che termina con " |
percentage |
La percentuale di traffico in cui verrà inserito il ritardo. Il valore deve essere compreso tra [0, 100] |
Interrompi
Specifica di come le richieste del client vengono interrotte nell'ambito dell'iniezione di errori prima di essere inviate a una destinazione.
Rappresentazione JSON |
---|
{ "httpStatus": integer, "percentage": integer } |
Campi | |
---|---|
httpStatus |
Il codice di stato HTTP utilizzato per interrompere la richiesta. Il valore deve essere compreso tra 200 e 599 compresi. |
percentage |
La percentuale di traffico che verrà interrotta. Il valore deve essere compreso tra [0, 100] |
RetryPolicy
Le specifiche per i nuovi tentativi.
Rappresentazione JSON |
---|
{ "retryConditions": [ string ], "numRetries": integer } |
Campi | |
---|---|
retryConditions[] |
|
numRetries |
Specifica il numero consentito di nuovi tentativi. Questo numero deve essere maggiore di 0. Se non specificato, il valore predefinito è 1. |
StatefulSessionAffinityPolicy
La specifica per l'affinità sessione stateful basata su cookie in cui il piano di data fornisce un "cookie di sessione" con il nome "GSSA" che codifica un host di destinazione specifico e ogni richiesta contenente il cookie verrà indirizzata a quell'host finché l'host di destinazione rimane attivo e funzionante.
La libreria mesh senza proxy gRPC o il proxy sidecar gestirà il cookie della sessione, ma il codice dell'applicazione client è responsabile della copia del cookie da ogni RPC nella sessione a quella successiva.
Rappresentazione JSON |
---|
{ "cookieTtl": string } |
Campi | |
---|---|
cookieTtl |
Obbligatorio. Il valore TTL del cookie per l'intestazione Set-Cookie generata dal piano dati. La durata del cookie può essere impostata su un valore compreso tra 1 e 86400 secondi (24 ore) inclusi. Una durata in secondi con un massimo di nove cifre frazionarie, che termina con " |
Metodi |
|
---|---|
|
Crea una nuova GrpcRoute in un determinato progetto e posizione. |
|
Elimina un singolo GrpcRoute. |
|
Restituisce i dettagli di un singolo GrpcRoute. |
|
Elenca le route GRPC in un determinato progetto e località. |
|
Aggiorna i parametri di un singolo GrpcRoute. |
|
Imposta il criterio di controllo dell'accesso sulla risorsa specificata. |
|
Restituisce le autorizzazioni di cui un chiamante dispone per la risorsa specificata. |