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. È necessaria almeno un'estensione. Per ogni catena di estensioni è possibile definire fino a tre estensioni per la risorsa LbTrafficExtension. Le catene di LbRouteExtension sono limitate a un'estensione per catena di estensioni.

MatchCondition

Condizioni in cui questa catena viene richiamata 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 ulteriori informazioni, consulta il riferimento al linguaggio del corrispettivo 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 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.

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.

Durata in secondi con un massimo di nove cifre frazionarie e 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 il criterio viene 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 di risposta non sono state inviate al client a valle, al client viene restituito un errore generico 500. La risposta di errore può essere personalizzata configurando una risposta di errore personalizzata nel bilanciatore del carico.

  • Se le intestazioni di risposta sono state inviate, lo stream HTTP al client a valle 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 di 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 quando arrivano i trailer della richiesta HTTP.
RESPONSE_TRAILERS Se inclusa in supportedEvents, l'estensione viene chiamata quando arrivano i trailer della risposta HTTP.