ExtensionChain

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

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

string

Obrigatório. O nome desta sequência de extensões. O nome é registado como parte dos registos de pedidos HTTP. O nome tem de estar em conformidade com a RFC-1034, está restrito a letras minúsculas, números e hífenes, e pode ter um comprimento máximo de 63 carateres. Além disso, o primeiro caráter tem de 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 um pedido.

extensions[]

object (Extension)

Obrigatório. Um conjunto de extensões a executar para o pedido correspondente. É necessária, pelo menos, uma extensão. Podem ser definidas até 3 extensões para cada cadeia de extensões para o recurso LbTrafficExtension. As cadeias de LbRouteExtension estão limitadas a 1 extensão por cadeia de extensões.

MatchCondition

Condições sob as quais esta cadeia é invocada para um pedido.

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

string

Obrigatório. Uma expressão do Idioma de expressão comum (IEC) que é usada para fazer corresponder pedidos para os quais a cadeia de extensões é executada.

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

Extensão

Uma única extensão na cadeia a executar para o pedido 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 é registado como parte dos registos de pedidos HTTP. O nome tem de estar em conformidade com a RFC-1034, está restrito a letras minúsculas, números e hífenes, e pode ter um comprimento máximo de 63 carateres. Além disso, o primeiro caráter tem de ser uma letra e o último uma letra ou um número.

authority

string

Opcional. O cabeçalho :authority no pedido gRPC enviado do Envoy para o serviço de extensão. Obrigatório para extensões de texto destacado.

service

string

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

Atualmente, apenas são suportados recursos de texto destacado aqui.

Para configurar uma extensão de texto de realce, service tem de 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 pedidos ou respostas para os quais esta extensão é chamada. Este campo é obrigatório para o recurso LbTrafficExtension. Não pode ser definido para o recurso LbRouteExtension.

timeout

string (Duration format)

Opcional. Especifica o tempo limite para cada mensagem individual na stream. O limite de tempo tem de estar entre 10 e 1000 milissegundos. Obrigatório para extensões de texto destacado.

Uma duração em segundos com até nove dígitos fracionários, que termina com "s". Exemplo: "3.5s".

failOpen

boolean

Opcional. Determina o comportamento do proxy se a chamada para a extensão falhar ou expirar.

Quando definido como TRUE, o processamento de pedidos ou respostas continua sem erros. As extensões subsequentes na cadeia de extensões também são executadas. Quando a opção está definida como FALSE ou é usada a predefinição de FALSE, ocorre uma das seguintes situações:

  • Se os cabeçalhos de resposta não tiverem sido entregues ao cliente a jusante, é devolvido um erro 500 genérico ao cliente. Pode personalizar a resposta de erro configurando uma resposta de erro personalizada no equilibrador de carga.

  • Se os cabeçalhos de resposta tiverem sido entregues, a stream HTTP para o cliente a jusante é reposta.

forwardHeaders[]

string

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

EventType

A parte do pedido ou da resposta para a qual a extensão é chamada.

Enumerações
EVENT_TYPE_UNSPECIFIED Valor não especificado. Não a utilize.
REQUEST_HEADERS Se estiver incluída em supportedEvents, a extensão é chamada quando os cabeçalhos do pedido HTTP chegam.
REQUEST_BODY Se estiver incluído em supportedEvents, a extensão é chamada quando o corpo do pedido HTTP chega.
RESPONSE_HEADERS Se estiver incluída em supportedEvents, a extensão é chamada quando os cabeçalhos da resposta HTTP chegam.
RESPONSE_BODY Se estiver incluída em supportedEvents, a extensão é chamada quando o corpo da resposta HTTP chega.
REQUEST_TRAILERS Se estiver incluída em supportedEvents, a extensão é chamada quando chegam os trailers de pedidos HTTP.
RESPONSE_TRAILERS Se estiver incluída em supportedEvents, a extensão é chamada quando os trailers de resposta HTTP chegam.