- Risorsa: GrpcRoute
- RouteRule
- RouteMatch
- MethodMatch
- Tipo
- HeaderMatch
- Tipo
- RouteAction
- Destinazione
- FaultInjectionPolicy
- Ritardo
- Interrompi
- RetryPolicy
- StatefulSessionAffinityPolicy
- Metodi
Risorsa: GrpcRoute
GrpcRoute è la risorsa che definisce in che modo viene indirizzato il traffico gRPC instradato 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 |
Identificatore. Nome della risorsa GrpcRoute. Corrisponde al pattern |
selfLink |
Solo output. L'URL definito dal server di questa risorsa. |
createTime |
Solo output. Timestamp di creazione della risorsa. Utilizza RFC 3339, in cui l'output generato è sempre con normalizzazione Z e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: |
updateTime |
Solo output. Timestamp di aggiornamento della risorsa. Utilizza RFC 3339, in cui l'output generato è sempre con normalizzazione Z e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: |
labels |
Facoltativo. Insieme di tag di etichette associati alla risorsa GrpcRoute. Un oggetto contenente un elenco di coppie |
description |
Facoltativo. Una descrizione in formato libero della risorsa. Lunghezza massima: 1024 caratteri. |
hostnames[] |
Obbligatorio. Nomi host del servizio con una porta facoltativa per cui questa route descrive il traffico. Formato: Il nome host è il nome di dominio completo di un host di rete. Corrisponde alla definizione di nome host RFC 1123 con due eccezioni degne di nota: - Gli IP non sono consentiti. - Un nome host può essere preceduto da un'etichetta jolly ( Il nome host può essere "esatto", ovvero un nome di dominio senza il punto finale di un host di rete (ad es. Tieni presente che, in base a 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 una 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, mentre è accettabile che le route per i nomi host Se viene specificata una porta, i client gRPC devono utilizzare l'URI del canale con la porta per corrispondere a 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 è collegata questa risorsa GrpcRoute, come una delle regole di routing per indirizzare le richieste gestite dal mesh. Ogni riferimento al mesh deve corrispondere al pattern: |
gateways[] |
Facoltativo. Gateways definisce un elenco di gateway a cui è collegata questa risorsa GrpcRoute, come una delle regole di routing per indirizzare le richieste gestite dal gateway. Ogni riferimento al gateway deve corrispondere al pattern: |
rules[] |
Obbligatorio. Un elenco di regole dettagliate che definiscono come indirizzare il traffico. All'interno di una singola risorsa GrpcRoute, viene eseguita l'azione GrpcRoute.RouteAction associata alla prima regola GrpcRoute.RouteRule corrispondente. Deve essere fornita almeno una regola. |
RouteRule
Descrive come indirizzare il traffico.
| Rappresentazione JSON |
|---|
{ "matches": [ { object ( |
| Campi | |
|---|---|
matches[] |
Facoltativo. Le corrispondenze definiscono le condizioni utilizzate per confrontare la regola con le richieste gRPC in entrata. Ogni corrispondenza è indipendente, ovvero questa regola verrà soddisfatta se viene soddisfatta UNA QUALSIASI delle corrispondenze. Se non viene specificato alcun campo matches, questa regola abbinerà il traffico incondizionatamente. |
action |
Obbligatorio. Una regola dettagliata che definisce come indirizzare il traffico. Questo campo è obbligatorio. |
RouteMatch
Criteri per la corrispondenza del traffico. Una RouteMatch verrà considerata una corrispondenza 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 con cui trovare la corrispondenza. Se questo campo è vuoto o omesso, verrà trovata una corrispondenza per tutti i metodi. |
MethodMatch
Specifica una corrispondenza con un metodo.
| Rappresentazione JSON |
|---|
{
"type": enum ( |
| Campi | |
|---|---|
type |
Facoltativo. Specifica come eseguire la corrispondenza con il nome. Se non specificato, viene utilizzato il valore predefinito "EXACT". |
grpcService |
Obbligatorio. Nome del servizio da confrontare. Se non specificato, corrisponderà a tutti i servizi. |
grpcMethod |
Obbligatorio. Nome del metodo da confrontare. 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_EXPRESSION. |
Tipo
Il tipo di partita.
| Enum | |
|---|---|
TYPE_UNSPECIFIED |
Non specificato. |
EXACT |
Corrisponderà solo al nome esatto fornito. |
REGULAR_EXPRESSION |
Interpreterà grpcMethod e grpcService come espressioni regolari. È supportata la sintassi RE2. |
HeaderMatch
Una corrispondenza con una raccolta di intestazioni.
| Rappresentazione JSON |
|---|
{
"type": enum ( |
| Campi | |
|---|---|
type |
Facoltativo. Specifica come eseguire la 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 |
Corrisponderà ai percorsi conformi al prefisso specificato dal valore. È supportata la sintassi RE2. |
RouteAction
Specifica come indirizzare 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 peso di queste destinazioni. |
faultInjectionPolicy |
Facoltativo. La specifica per l'inserimento di errori nel traffico per testare la resilienza dei client al guasto del servizio di destinazione. Nell'ambito dell'inserimento di errori, quando i client inviano richieste a una destinazione, è possibile introdurre ritardi su una percentuale di richieste prima di inviarle al servizio di destinazione. Allo stesso modo, le richieste 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 la route selezionata. Il timeout viene calcolato dal momento in cui la richiesta è stata elaborata completamente (ovvero la fine dello stream) fino al momento in cui la risposta è stata elaborata completamente. Il timeout include tutti i tentativi. Una durata in secondi con un massimo di nove cifre frazionarie, che termina con " |
retryPolicy |
Facoltativo. Specifica la policy di ripetizione associata a questa route. |
statefulSessionAffinity |
Facoltativo. Specifica l'affinità sessione stateful basata sui cookie. |
idleTimeout |
Facoltativo. Specifica il timeout di inattività per la route selezionata. Il timeout di inattività è definito come il periodo in cui non vengono inviati o ricevuti byte sulla connessione upstream o downstream. Se non viene impostato, il timeout di inattività predefinito è di 1 ora. Se impostato su 0 secondi, il timeout verrà disabilitato. Una durata in secondi con un massimo di nove cifre frazionarie, che termina con " |
Destinazione
La destinazione a cui verrà indirizzato 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 tipi: |
|
serviceName |
Obbligatorio. L'URL di un servizio di destinazione a cui indirizzare il traffico. Deve fare riferimento a un BackendService o a un ServiceDirectoryService. |
weight |
Facoltativo. Specifica la proporzione di richieste inoltrate al backend a cui fa riferimento il campo serviceName. Questo valore viene calcolato come: - ponderazione/somma(ponderazioni in questo elenco di destinazione). Per valori diversi da zero, potrebbe esserci un epsilon rispetto alla proporzione esatta definita qui, a seconda della precisione supportata dall'implementazione. Se viene specificato un solo serviceName e la relativa ponderazione è maggiore di 0, il 100% del traffico viene inoltrato a quel backend. Se vengono specificate delle ponderazioni per un nome di servizio, devono essere specificate per tutti. Se le ponderazioni non vengono specificate per tutti i servizi, il traffico viene distribuito in proporzioni uguali tra tutti. |
FaultInjectionPolicy
La specifica per l'inserimento di errori nel traffico per testare la resilienza dei client al guasto del servizio di destinazione. Nell'ambito dell'inserimento di errori, quando i client inviano richieste a una destinazione, è possibile introdurre ritardi su una percentuale di richieste prima di inviarle al servizio di destinazione. Allo stesso modo, le richieste dei client possono essere interrotte per una percentuale di richieste.
| Rappresentazione JSON |
|---|
{ "delay": { object ( |
| Campi | |
|---|---|
delay |
La specifica per l'inserimento di ritardi nelle richieste client. |
abort |
La specifica per l'interruzione delle richieste client. |
Ritardo
Specifica di come le richieste client vengono ritardate nell'ambito dell'inserimento 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 su cui verrà inserito il ritardo. Il valore deve essere compreso tra 0 e 100. |
Interrompi
Specifica di come vengono interrotte le richieste client nell'ambito dell'inserimento 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 inclusi. |
percentage |
La percentuale di traffico che verrà interrotto. Il valore deve essere compreso tra 0 e 100. |
RetryPolicy
Le specifiche per i nuovi tentativi. Specifica una o più condizioni a cui si applica questa regola di ripetizione. I valori validi sono:
| Rappresentazione JSON |
|---|
{ "retryConditions": [ string ], "numRetries": integer } |
| Campi | |
|---|---|
retryConditions[] |
|
numRetries |
Specifica il numero consentito di 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 dati fornisce un "cookie di sessione" con il nome "GSSA" che codifica un host di destinazione specifico e ogni richiesta contenente quel cookie verrà indirizzata a quell'host finché l'host di destinazione rimane attivo e integro.
La libreria mesh senza proxy gRPC o il proxy sidecar gestirà il cookie di 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 86.400 secondi (24 ore) inclusi. Una durata in secondi con un massimo di nove cifre frazionarie, che termina con " |
Metodi |
|
|---|---|
|
Crea una nuova risorsa GrpcRoute in un progetto e una località specifici. |
|
Elimina una singola risorsa GrpcRoute. |
|
Recupera i dettagli di una singola risorsa GrpcRoute. |
|
Elenca le risorse GrpcRoute in un progetto e una località specifici. |
|
Aggiorna i parametri di una singola risorsa GrpcRoute. |
|
Imposta la policy di controllo dell'accesso sulla risorsa specificata. |
|
Restituisce le autorizzazioni di cui dispone un chiamante per la risorsa specificata. |