ExtensionChain

包含匹配条件和要执行的扩展程序的单个扩展程序链封装容器。

JSON 表示法
{
  "name": string,
  "matchCondition": {
    object (MatchCondition)
  },
  "extensions": [
    {
      object (Extension)
    }
  ]
}
字段
name

string

必需。此扩展程序链的名称。该名称会作为 HTTP 请求日志的一部分进行记录。名称必须符合 RFC-1034 的要求,仅限使用小写字母、数字和连字符,且长度上限为 63 个字符。此外,第一个字符必须是字母,最后一个字符必须是字母或数字。

matchCondition

object (MatchCondition)

必需。为请求调用此链的条件。

extensions[]

object (Extension)

必需。要针对匹配请求执行的一组扩展程序。必须至少选择一个扩展程序。可以为 LbTrafficExtension 资源的每个扩展程序链定义最多 3 个扩展程序。每个扩展程序链中 LbRouteExtension 链限制为 1 个扩展。

MatchCondition

为请求调用此链的条件。

JSON 表示法
{
  "celExpression": string
}
字段
celExpression

string

必需。通用表达式语言 (CEL) 表达式,用于匹配执行扩展程序链的请求。

如需了解详情,请参阅 CEL 匹配器语言参考文档

扩展程序

链中要针对匹配请求执行的单个扩展程序。

JSON 表示法
{
  "name": string,
  "authority": string,
  "service": string,
  "supportedEvents": [
    enum (EventType)
  ],
  "timeout": string,
  "failOpen": boolean,
  "forwardHeaders": [
    string
  ]
}
字段
name

string

必需。此扩展程序的名称。该名称会作为 HTTP 请求日志的一部分进行记录。名称必须符合 RFC-1034 的要求,仅限使用小写字母、数字和连字符,且长度上限为 63 个字符。此外,第一个字符必须是字母,最后一个字符必须是字母或数字。

authority

string

可选。从 Envoy 发送到扩展程序服务的 gRPC 请求中的 :authority 标头。对于宣传信息扩展程序是必需的。

service

string

必需。对运行扩展程序的服务的引用。

目前,此处仅支持宣传信息扩展程序。

如需配置宣传信息扩展程序,service 必须是完全限定的后端服务引用,格式为:https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/backendServices/{backendService}https://www.googleapis.com/compute/v1/projects/{project}/global/backendServices/{backendService}

supportedEvents[]

enum (EventType)

可选。在请求或响应处理期间调用此扩展程序的一组事件。此字段是 LbTrafficExtension 资源的必填字段。不得为 LbRouteExtension 资源设置此字段。

timeout

string (Duration format)

可选。为数据流中每一条消息指定超时时间。超时时间必须介于 10 毫秒到 1,000 毫秒之间。对于宣传信息扩展程序是必需的。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

failOpen

boolean

可选。确定在对扩展程序的调用失败或超时时,代理的行为方式。

如果设置为 TRUE,请求或响应处理会继续进行,而不会出错。扩展程序链中的任何后续扩展程序也会执行。设置为 FALSE 或使用默认设置 FALSE 时,将发生以下情况之一:

  • 如果响应标头尚未递送给下游客户端,系统会向客户端返回一般 500 错误。您可以在负载均衡器中配置自定义错误响应,以定制错误响应。

  • 如果响应标头已递送,则会重置到下游客户端的 HTTP 数据流。

forwardHeaders[]

string

可选。要转发到此扩展程序(从客户端或后端)的 HTTP 标头的列表。如果省略,则系统会发送所有标头。每个元素都是一个字符串,用于指明标头名称。

EventType

调用扩展程序的请求或响应的部分。

枚举
EVENT_TYPE_UNSPECIFIED 未指定的值。请勿使用。
REQUEST_HEADERS 如果包含在 supportedEvents 中,则在 HTTP 请求标头到达时调用该扩展程序。
REQUEST_BODY 如果包含在 supportedEvents 中,则在 HTTP 请求正文到达时调用该扩展程序。
RESPONSE_HEADERS 如果包含在 supportedEvents 中,则在 HTTP 响应标头到达时调用该扩展程序。
RESPONSE_BODY 如果包含在 supportedEvents 中,则在 HTTP 响应正文到达时调用该扩展程序。
REQUEST_TRAILERS 如果包含在 supportedEvents 中,则在 HTTP 请求尾部到达时调用该扩展程序。
RESPONSE_TRAILERS 如果包含在 supportedEvents 中,则在 HTTP 响应尾部达时调用该扩展程序。