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 extensión. El nombre se registra como parte de los registros de solicitudes HTTP. El nombre debe cumplir con RFC-1034, se limita 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 bajo las que se invoca esta cadena para una solicitud.

extensions[]

object (Extension)

Obligatorio. Es 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 extensión de LbTrafficExtension recurso. Las cadenas de LbRouteExtension se limitan a 1 extensión por cadena.

MatchCondition

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

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

string

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

Para obtener más información, consulta la referencia del lenguaje del comparador de 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 el estándar RFC-1034, está restringido a 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 gRPC que se envió de Envoy al servicio de extensión. Obligatorio para las extensiones de texto destacado.

service

string

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

Actualmente, 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 se agota el tiempo de espera.

Cuando se establece en TRUE, el procesamiento de la solicitud o la respuesta continúa sin errores. También se ejecutan todas las extensiones posteriores de la cadena de extensiones. Cuando se establece en FALSE o se usa la configuración predeterminada de FALSE, ocurre una de las siguientes acciones:

  • Si no se entregaron encabezados de respuesta al cliente downstream, se le muestra un error genérico 500. Para personalizar la respuesta de error, configura una respuesta de error personalizada en el balanceador de cargas.

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

forwardHeaders[]

string

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

EventType

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

Enums
EVENT_TYPE_UNSPECIFIED Indica que no se especificó el valor. No se debe usar.
REQUEST_HEADERS Si se incluye en supportedEvents, se llama a la extensión cuando llegan los encabezados de 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.