ExtensionChain

Un solo wrapper de cadena de extensión que contiene las condiciones de coincidencia y las extensiones que se ejecutarán.

Representación JSON
{
  "name": string,
  "matchCondition": {
    object (MatchCondition)
  },
  "extensions": [
    {
      object (Extension)
    }
  ]
}
Campos
name

string

Obligatorio. Es el nombre de esta cadena de extensiones. El nombre se registra como parte de los registros de solicitudes HTTP. El nombre debe cumplir con la especificación RFC-1034, está restringido a letras minúsculas, números y guiones, y puede tener una longitud máxima de 63 caracteres. Además, el primer carácter debe ser una letra y el último, una letra o un número.

matchCondition

object (MatchCondition)

Obligatorio. Condiciones en las que se invoca esta cadena para una solicitud.

extensions[]

object (Extension)

Obligatorio. Un conjunto de extensiones que se ejecutarán para la solicitud coincidente. Se requiere al menos una extensión. Se pueden definir hasta 3 extensiones para cada cadena de extensiones en LbTrafficExtension recurso. Las cadenas de LbRouteExtension tienen un límite de 1 extensión por cada cadena.

MatchCondition

Condiciones en las que se invoca esta cadena para una solicitud.

Representación JSON
{
  "celExpression": string
}
Campos
celExpression

string

Obligatorio. Una expresión de Common Expression Language (CEL) que se usa para hacer coincidir las solicitudes para las que se ejecuta la cadena de extensiones.

Para obtener más información, consulta la referencia de lenguaje del comparador CEL.

Extensión

Una sola extensión en la cadena que se ejecutará para la solicitud coincidente.

Representación JSON
{
  "name": string,
  "authority": string,
  "service": string,
  "supportedEvents": [
    enum (EventType)
  ],
  "timeout": string,
  "failOpen": boolean,
  "forwardHeaders": [
    string
  ]
}
Campos
name

string

Obligatorio. Es el nombre de esta extensión. El nombre se registra como parte de los registros de solicitudes HTTP. El nombre debe cumplir con la especificación RFC-1034, está restringido a letras minúsculas, números y guiones, y puede tener una longitud máxima de 63 caracteres. Además, el primer carácter debe ser una letra y el último, una letra o un número.

authority

string

Opcional. El encabezado :authority en la solicitud de gRPC que se envió desde Envoy al servicio de extensión. Obligatorio para las extensiones de texto destacado.

service

string

Obligatorio. Es la referencia al servicio que ejecuta la extensión.

Actualmente, aquí solo se admiten extensiones de texto destacado.

Para configurar una extensión de texto destacado, service debe ser una referencia completamente calificada a un servicio de backend en el 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)

Opcional. Un conjunto de eventos durante el procesamiento de solicitudes o respuestas para los que se llama a esta extensión. Este campo es obligatorio para el recurso LbTrafficExtension. No se debe configurar para el recurso LbRouteExtension.

timeout

string (Duration format)

Opcional. Especifica el tiempo de espera para cada mensaje individual de la transmisión. El tiempo de espera debe ser de entre 10 y 1,000 milisegundos. Obligatorio para las extensiones de texto destacado.

Una duración en segundos con hasta nueve dígitos decimales, que terminan en “s”. Ejemplo: "3.5s".

failOpen

boolean

Opcional. Determina cómo se comporta el proxy si la llamada a la extensión falla o si se agota el tiempo de espera.

Cuando se establece en TRUE, el procesamiento de solicitudes o respuestas continúa sin errores. También se ejecutan las extensiones posteriores de la cadena de extensiones. Cuando se establece en FALSE o se utiliza la configuración predeterminada de FALSE, ocurre una de las siguientes situaciones:

  • Si los encabezados de respuesta no se entregaron al cliente downstream, se muestra un error genérico 500 al cliente. La respuesta de error se puede adaptar a través de la configuración de una respuesta de error personalizada en el balanceador de cargas.

  • Si se entregaron los encabezados de respuesta, se restablece la transmisión HTTP al cliente descendente.

forwardHeaders[]

string

Opcional. Lista de los encabezados HTTP que se reenviarán a la extensión (desde el cliente o backend). Si se omite, se envían todos los encabezados. Cada elemento es una cadena que indica el nombre del encabezado.

EventType

La parte de la solicitud o respuesta para la que se llama a la extensión.

Enums
EVENT_TYPE_UNSPECIFIED Valor no especificado. No se debe usar.
REQUEST_HEADERS Si se incluye en supportedEvents, se llama a la extensión cuando llegan los encabezados de la solicitud HTTP.
REQUEST_BODY Si se incluye en supportedEvents, se llama a la extensión cuando llega el cuerpo de la solicitud HTTP.
RESPONSE_HEADERS Si se incluye en supportedEvents, se llama a la extensión cuando llegan los encabezados de respuesta HTTP.
RESPONSE_BODY Si se incluye en supportedEvents, se llama a la extensión cuando llega el cuerpo de la respuesta HTTP.
REQUEST_TRAILERS Si se incluye en supportedEvents, se llama a la extensión cuando llegan los avances de la solicitud HTTP.
RESPONSE_TRAILERS Si se incluye en supportedEvents, se llama a la extensión cuando llegan los avances de respuesta HTTP.