ExtensionChain

Un singolo wrapper della catena di estensioni contenente le condizioni di corrispondenza e le estensioni da eseguire.

Rappresentazione JSON
{
  "name": string,
  "matchCondition": {
    object (MatchCondition)
  },
  "extensions": [
    {
      object (Extension)
    }
  ]
}
Campi
name

string

Obbligatorio. Il nome di questa catena di estensioni. Il nome viene registrato come parte dei log delle richieste HTTP. Il nome deve essere conforme a RFC-1034, è limitato a lettere minuscole, numeri e trattini e può avere una lunghezza massima di 63 caratteri. Inoltre, il primo carattere deve essere una lettera e l'ultimo una lettera o un numero.

matchCondition

object (MatchCondition)

Obbligatorio. Condizioni in cui questa catena viene richiamata per una richiesta.

extensions[]

object (Extension)

Obbligatorio. Un insieme di estensioni da eseguire per la richiesta corrispondente. È richiesta almeno un'estensione. Per ogni catena di estensioni è possibile definire fino a tre estensioni per la risorsa LbTrafficExtension. LbRouteExtension catene sono limitate a 1 estensione per catena di estensioni.

MatchCondition

Condizioni in cui questa catena viene invocata per una richiesta.

Rappresentazione JSON
{
  "celExpression": string
}
Campi
celExpression

string

Obbligatorio. Un'espressione CEL (Common Expression Language) utilizzata per trovare corrispondenze delle richieste per le quali viene eseguita la catena di estensioni.

Per maggiori informazioni, consulta la sezione Riferimento per il linguaggio di corrispondenza CEL.

Estensione

Una singola estensione della catena da eseguire per la richiesta corrispondente.

Rappresentazione JSON
{
  "name": string,
  "authority": string,
  "service": string,
  "supportedEvents": [
    enum (EventType)
  ],
  "timeout": string,
  "failOpen": boolean,
  "forwardHeaders": [
    string
  ]
}
Campi
name

string

Obbligatorio. Il nome di questa estensione. Il nome viene registrato nei log delle richieste HTTP. Il nome deve essere conforme a RFC-1034, è limitato a lettere minuscole, numeri e trattini e può avere una lunghezza massima di 63 caratteri. Inoltre, il primo carattere deve essere una lettera e l'ultimo una lettera o un numero.

authority

string

Facoltativo. L'intestazione :authority nella richiesta gRPC inviata da Envoy al servizio di estensione. Obbligatorio per le estensioni callout.

service

string

Obbligatorio. Il riferimento al servizio che esegue l'estensione.

Al momento sono supportate solo le estensioni di callout.

Per configurare un'estensione di callout, service deve essere un riferimento completo a un servizio di backend nel formato: https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/backendServices/{backendService} o https://www.googleapis.com/compute/v1/projects/{project}/global/backendServices/{backendService}.

supportedEvents[]

enum (EventType)

Facoltativo. Un insieme di eventi durante l'elaborazione della richiesta o della risposta per il quale viene chiamata questa estensione. Questo campo è obbligatorio per la risorsa LbTrafficExtension. Non deve essere impostato per la risorsa LbRouteExtension.

timeout

string (Duration format)

Facoltativo. Specifica il timeout per ogni singolo messaggio nel flusso. Il timeout deve essere compreso tra 10 e 1000 millisecondi. Obbligatorio per le estensioni callout.

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s". Esempio: "3.5s".

failOpen

boolean

Facoltativo. Determina il comportamento del proxy in caso di esito negativo o di timeout della chiamata all'estensione.

Se impostato su TRUE, l'elaborazione della richiesta o della risposta continua senza errori. Vengono eseguite anche eventuali estensioni successive nella catena di estensioni. Se il criterio viene impostato su FALSE o viene utilizzata l'impostazione predefinita di FALSE, si verifica una delle seguenti situazioni:

  • Se le intestazioni delle risposte non sono state recapitate al client downstream, al client viene restituito un errore 500 generico. La risposta di errore può essere personalizzata configurando una risposta di errore personalizzata nel bilanciatore del carico.

  • Se le intestazioni della risposta sono state recapitate, il flusso HTTP al client downstream viene reimpostato.

forwardHeaders[]

string

Facoltativo. Elenco delle intestazioni HTTP da inoltrare all'estensione (dal client o dal backend). Se omesso, vengono inviate tutte le intestazioni. Ogni elemento è una stringa che indica il nome dell'intestazione.

EventType

La parte della richiesta o della risposta per cui viene chiamata l'estensione.

Enum
EVENT_TYPE_UNSPECIFIED Valore non specificato. Non utilizzare.
REQUEST_HEADERS Se inclusa in supportedEvents, l'estensione viene chiamata quando arrivano le intestazioni delle richieste HTTP.
REQUEST_BODY Se inclusa in supportedEvents, l'estensione viene chiamata quando arriva il corpo della richiesta HTTP.
RESPONSE_HEADERS Se inclusa in supportedEvents, l'estensione viene chiamata quando arrivano le intestazioni della risposta HTTP.
RESPONSE_BODY Se inclusa in supportedEvents, l'estensione viene chiamata quando arriva il corpo della risposta HTTP.
REQUEST_TRAILERS Se inclusa in supportedEvents, l'estensione viene chiamata all'arrivo dei trailer delle richieste HTTP.
RESPONSE_TRAILERS Se inclusa in supportedEvents, l'estensione viene chiamata all'arrivo dei trailer della risposta HTTP.