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 响应预告片时调用。