ExtensionChain

Um único wrapper da cadeia de extensões 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ões. O nome é registrado como parte dos registros de solicitações HTTP. O nome precisa estar em conformidade com o RFC-1034, conter apenas 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 sob as quais esta cadeia é invocada para uma solicitação.

extensions[]

object (Extension)

Obrigatório. Um conjunto de extensões a serem executadas para a solicitação correspondente. Pelo menos uma extensão é necessária. Até três extensões podem ser definidas para cada cadeia de extensões para o recurso LbTrafficExtension. LbRouteExtension de redes estão limitadas a uma extensão por rede.

MatchCondition

Condições sob as quais esta cadeia é invocada para uma solicitação.

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

string

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

Para mais informações, consulte a referência de linguagem de correspondência 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 desta extensão. O nome é registrado como parte dos registros de solicitações HTTP. O nome precisa estar em conformidade com o RFC-1034, conter apenas 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, somente extensões de frase de destaque são compatíveis aqui.

Para configurar uma extensão de frase de destaque, service precisa ser uma referência totalmente qualificada a 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ções ou respostas continua sem erro. Todas as extensões subsequentes na cadeia de extensões também são executadas. Quando definido como FALSE ou quando a configuração padrão de FALSE é usada, acontece um dos seguintes resultados:

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

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

forwardHeaders[]

string

Opcional. Lista dos cabeçalhos HTTP para encaminhar à extensão (do cliente ou back-end). Se omitido, todos os cabeçalhos sã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.

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