元数据 (proto)

type.metadata.v3.MetadataKey

[type.metadata.v3.MetadataKey proto]

MetadataKey 使用 keypath 提供一个通用接口,用于从 Metadata 中检索值。

例如,对于以下元数据

filter_metadata:
  envoy.xxx:
    prop:
      foo: bar
      xyz:
        hello: envoy

以下 MetadataKey 将从元数据中检索字符串值“bar”。

key: envoy.xxx
path:
- key: prop
- key: foo
{
  "key": ...,
  "path": []
}
key

(string, 必需) 要从元数据中检索 Struct 的元数据的键名。通常,它代表一个内置子系统或自定义扩展。

path

(重复 type.metadata.v3.MetadataKey.PathSegment, 必需) 从 Struct 中检索值的路径。它可以是前缀或完整路径,例如 [prop, xyz] 用于结构,或 [prop, foo] 用于示例中的字符串,这取决于特定情况。

注意:由于只支持键类型段,因此路径不能指定列表,除非列表是最后一个段。

type.metadata.v3.MetadataKey.PathSegment

[type.metadata.v3.MetadataKey.PathSegment proto]

指定路径中从元数据检索值的段。目前只支持指定键,即字段名,作为路径的一个段。

{
  "key": ...
}
key

(string, 必需) 如果指定,请使用键从 Struct 中检索值。

type.metadata.v3.MetadataKind

[type.metadata.v3.MetadataKind proto]

描述元数据的类型。

{
  "request": {...},
  "route": {...},
  "cluster": {...},
  "host": {...}
}
request

(type.metadata.v3.MetadataKind.Request) 请求类型的元数据。

必须设置 requestrouteclusterhost 中的其中一个。

route

(type.metadata.v3.MetadataKind.Route) 路由类型的元数据。

必须设置 requestrouteclusterhost 中的其中一个。

cluster

(type.metadata.v3.MetadataKind.Cluster) 集群类型的元数据。

必须设置 requestrouteclusterhost 中的其中一个。

host

(type.metadata.v3.MetadataKind.Host) 主机类型的元数据。

必须设置 requestrouteclusterhost 中的其中一个。

type.metadata.v3.MetadataKind.Request

[type.metadata.v3.MetadataKind.Request proto]

表示与请求相关的动态元数据。

type.metadata.v3.MetadataKind.Route

[type.metadata.v3.MetadataKind.Route proto]

表示来自 路由 的元数据。

type.metadata.v3.MetadataKind.Cluster

[type.metadata.v3.MetadataKind.Cluster proto]

表示来自 上游集群 的元数据。

type.metadata.v3.MetadataKind.Host

[type.metadata.v3.MetadataKind.Host proto]

表示来自 上游主机 的元数据。