ExtensionChain

Un único envoltorio de cadena de extensiones que contiene las condiciones de coincidencia y las extensiones que se van a ejecutar.

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

string

Obligatorio. Nombre de esta cadena de extensiones. El nombre se registra como parte de los registros de solicitudes HTTP. El nombre debe cumplir la RFC-1034, solo puede contener letras en minúscula, 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. Conjunto de extensiones que se van a ejecutar para la solicitud coincidente. Se requiere al menos una extensión. Se pueden definir hasta 3 extensiones por cada cadena de extensiones del recurso LbTrafficExtension. Las cadenas de LbRouteExtension están limitadas a una 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. Una expresión de lenguaje de expresión común (CEL) que se usa para buscar las solicitudes en las que se ejecuta la cadena de extensiones.

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

Extensión

Una sola extensión de la cadena que se va a 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. Nombre de la extensión. El nombre se registra como parte de los registros de solicitudes HTTP. El nombre debe cumplir la RFC-1034, solo puede contener letras en minúscula, 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. Encabezado :authority de la solicitud gRPC enviada desde Envoy al servicio de extensión. Obligatorio para las extensiones de texto destacado.

service

string

Obligatorio. 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 completa a un servicio de backend con 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. 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 debe definirse para el recurso LbRouteExtension.

timeout

string (Duration format)

Opcional. Especifica el tiempo de espera de cada mensaje del flujo. El tiempo de espera debe estar entre 10 y 1000 milisegundos. Obligatorio para las extensiones de texto destacado.

Duración en segundos con hasta nueve decimales, que termina con "s". Por 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.

Si se define como TRUE, el procesamiento de la solicitud o la respuesta continúa sin errores. También se ejecutan las extensiones posteriores de la cadena. Si se define el valor FALSE o se usa el valor predeterminado FALSE, ocurre una de las siguientes situaciones:

  • Si los encabezados de respuesta no se han enviado al cliente de nivel inferior, se devuelve un error 500 genérico al cliente. La respuesta de error se puede personalizar configurando una respuesta de error personalizada en el balanceador de carga.

  • Si se han enviado encabezados de respuesta, se restablece el flujo HTTP al cliente de nivel inferior.

forwardHeaders[]

string

Opcional. Lista de los encabezados HTTP que se van a 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

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

Enumeraciones
EVENT_TYPE_UNSPECIFIED Valor no especificado. No utilices esta enumeración.
REQUEST_HEADERS Si se incluye en supportedEvents, la extensión se llama cuando llegan los encabezados de solicitud HTTP.
REQUEST_BODY Si se incluye en supportedEvents, la extensión se llama cuando llega el cuerpo de la solicitud HTTP.
RESPONSE_HEADERS Si se incluye en supportedEvents, la extensión se llama cuando llegan los encabezados de respuesta HTTP.
RESPONSE_BODY Si se incluye en supportedEvents, la extensión se llama cuando llega el cuerpo de la respuesta HTTP.
REQUEST_TRAILERS Si se incluye en supportedEvents, la extensión se llama cuando llegan los trailers de la solicitud HTTP.
RESPONSE_TRAILERS Si se incluye en supportedEvents, la extensión se llama cuando llegan los finalizadores de respuesta HTTP.