ExtensionChain

Un singolo wrapper della catena di estensioni che contiene 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'ultima una lettera o un numero.

matchCondition

object (MatchCondition)

Obbligatorio. Condizioni in base alle quali 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. È possibile definire fino a tre estensioni per ogni catena di estensioni per LbTrafficExtension risorsa. LbRouteExtension catene sono limitate a 1 estensione per catena di estensione.

MatchCondition

Condizioni in base alle quali 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 cui viene eseguita la catena di estensioni.

Per ulteriori informazioni, consulta la sezione Riferimento lingua del matcher 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'ultima 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, qui sono supportate solo le estensioni callout.

Per configurare un'estensione 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 che si verificano durante l'elaborazione di richieste o risposte per i quali viene richiamata l'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 in caso di errore o timeout della chiamata all'estensione.

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

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

  • Se le intestazioni della risposta sono state inviate, lo stream HTTP al client downstream viene reimpostato.

forwardHeaders[]

string

Facoltativo. Elenco di 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 all'arrivo delle intestazioni della richiesta HTTP.
REQUEST_BODY Se inclusa in supportedEvents, l'estensione viene chiamata all'arrivo del corpo della richiesta HTTP.
RESPONSE_HEADERS Se inclusa in supportedEvents, l'estensione viene richiamata all'arrivo delle intestazioni della risposta HTTP.
RESPONSE_BODY Se inclusa in supportedEvents, l'estensione viene chiamata all'arrivo del corpo della risposta HTTP.
REQUEST_TRAILERS Se inclusa in supportedEvents, l'estensione viene richiamata all'arrivo della richiesta HTTP.
RESPONSE_TRAILERS Se inclusa in supportedEvents, l'estensione viene richiamata all'arrivo della risposta HTTP.