ExtensionChain

Um único wrapper de cadeia de extensão que contém as condições de correspondência e as extensões a serem executadas.

Representação JSON
{
  "name": string,
  "matchCondition": {
    object (MatchCondition)
  },
  "extensions": [
    {
      object (Extension)
    }
  ]
}
Campos
name

string

Obrigatório. O nome dessa cadeia de extensão. O nome é registrado como parte dos registros de solicitação HTTP. O nome precisa estar em conformidade com o RFC-1034, é restrito a letras minúsculas, números e hifens e pode ter no máximo 63 caracteres. Além disso, o primeiro caractere precisa ser uma letra, e o último, uma letra ou um número.

matchCondition

object (MatchCondition)

Obrigatório. Condições em que essa cadeia é invocada para uma solicitação.

extensions[]

object (Extension)

Obrigatório. Um conjunto de extensões a serem executadas para a solicitação correspondente. É necessário usar pelo menos uma extensão. É possível definir até três extensões para cada cadeia de extensão do recurso LbTrafficExtension. As cadeias de LbRouteExtension são limitadas a uma extensão por cadeia.

MatchCondition

Condições em que essa cadeia é invocada para uma solicitação.

Representação JSON
{
  "celExpression": string
}
Campos
celExpression

string

Obrigatório. Uma expressão da Common Expression Language (CEL) usada para corresponder a solicitações em que a cadeia de extensão é executada.

Para mais informações, consulte a referência da linguagem do comparador CEL.

Extensão

Uma única extensão na cadeia a ser executada para a solicitação correspondente.

Representação JSON
{
  "name": string,
  "authority": string,
  "service": string,
  "supportedEvents": [
    enum (EventType)
  ],
  "timeout": string,
  "failOpen": boolean,
  "forwardHeaders": [
    string
  ]
}
Campos
name

string

Obrigatório. O nome dessa extensão. O nome é registrado como parte dos registros de solicitação HTTP. O nome precisa estar em conformidade com o RFC-1034, é restrito a letras minúsculas, números e hifens e pode ter no máximo 63 caracteres. Além disso, o primeiro caractere precisa ser uma letra, e o último, uma letra ou um número.

authority

string

Opcional. O cabeçalho :authority na solicitação gRPC enviada do Envoy para o serviço de extensão. Obrigatório para extensões de frase de destaque.

service

string

Obrigatório. A referência ao serviço que executa a extensão.

No momento, só há suporte para extensões de chamada.

Para configurar uma extensão de chamada, service precisa ser uma referência totalmente qualificada para um serviço de back-end no formato: https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/backendServices/{backendService} ou https://www.googleapis.com/compute/v1/projects/{project}/global/backendServices/{backendService}.

supportedEvents[]

enum (EventType)

Opcional. Um conjunto de eventos durante o processamento de solicitação ou resposta para o qual essa extensão é chamada. Este campo é obrigatório para o recurso LbTrafficExtension. Ele não pode ser definido para o recurso LbRouteExtension.

timeout

string (Duration format)

Opcional. Especifica o tempo limite de cada mensagem individual no stream. O tempo limite precisa ser de 10 a 1.000 milissegundos. Obrigatório para extensões de frase de destaque.

Duração em segundos com até nove dígitos fracionários, terminando em "s". Exemplo: "3.5s".

failOpen

boolean

Opcional. Determina como o proxy se comporta se a chamada para a extensão falhar ou expirar.

Quando definido como TRUE, o processamento de solicitação ou resposta continua sem erros. Todas as extensões subsequentes na cadeia de extensão também são executadas. Quando definido como FALSE ou a configuração padrão de FALSE é usada, uma das seguintes ações acontece:

  • Se os cabeçalhos de resposta não tiverem sido enviados ao cliente downstream, um erro genérico 500 será retornado ao cliente. A resposta de erro pode ser personalizada configurando uma resposta de erro personalizada no balanceador de carga.

  • Se os cabeçalhos de resposta tiverem sido enviados, o fluxo HTTP para o cliente downstream será redefinido.

forwardHeaders[]

string

Opcional. Lista dos cabeçalhos HTTP a serem encaminhados para a extensão (do cliente ou back-end). Se omitido, todos os cabeçalhos serão enviados. Cada elemento é uma string que indica o nome do cabeçalho.

EventType

A parte da solicitação ou resposta para a qual a extensão é chamada.

Enums
EVENT_TYPE_UNSPECIFIED Valor não especificado. Não use.
REQUEST_HEADERS Se incluído em supportedEvents, a extensão será chamada quando os cabeçalhos de solicitação HTTP chegarem.
REQUEST_BODY Se incluído em supportedEvents, a extensão será chamada quando o corpo da solicitação HTTP chegar.
RESPONSE_HEADERS Se incluído em supportedEvents, a extensão será chamada quando os cabeçalhos de resposta HTTP chegarem.
RESPONSE_BODY Se incluído em supportedEvents, a extensão será chamada quando o corpo da resposta HTTP chegar.
REQUEST_TRAILERS Se incluído em supportedEvents, a extensão será chamada quando os trailers de solicitação HTTP chegarem.
RESPONSE_TRAILERS Se incluído em supportedEvents, a extensão será chamada quando os trailers de resposta HTTP chegarem.