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 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.

matchCondition

object (MatchCondition)

Obbligatorio. Condizioni in base alle quali questa catena viene invocata 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 base alle quali questa catena viene invocata per una richiesta.

Rappresentazione JSON
{
  "celExpression": string
}
Campi
celExpression

string

Obbligatorio. Un'espressione Common Expression Language (CEL) utilizzata per trovare una corrispondenza con le 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 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 i quali 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 nello stream. 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 se la chiamata all'estensione non va a buon fine o scade il timeout.

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 l'impostazione è FALSE o viene utilizzata l'impostazione predefinita FALSE, si verifica una delle seguenti condizioni:

  • 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 la quale 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.