Metadata (proto)

type.metadata.v3.MetadataKey

[type.metadata.v3.MetadataKey proto]

MetadataKey 提供一個通用介面,使用 keypathMetadata 中檢索值。

例如,對於以下 Metadata

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

以下 MetadataKey 將從 Metadata 檢索字串值 “bar”。

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

(字串必填) 從 metadata 中檢索 Struct 的金鑰名稱。通常,它表示內建子系統或自訂擴充功能。

path

(重複 type.metadata.v3.MetadataKey.PathSegment必填) 從 Struct 中檢索值的路徑。它可以是前綴或完整路徑,例如,[prop, xyz] 用於結構體,或 [prop, foo] 用於範例中的字串,這取決於特定情況。

注意:由於僅支援金鑰類型區段,因此路徑無法指定清單,除非該清單是最後一個區段。

type.metadata.v3.MetadataKey.PathSegment

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

指定路徑中的區段,以從 Metadata 中檢索值。目前僅支援將金鑰(即欄位名稱)指定為路徑的一個區段。

{
  "key": ...
}
key

(字串必填) 如果指定,請使用金鑰從 Struct 中檢索值。

type.metadata.v3.MetadataKind

[type.metadata.v3.MetadataKind proto]

描述 metadata 的種類。

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

(type.metadata.v3.MetadataKind.Request) 請求類型的 metadata。

必須設定 requestrouteclusterhost 中的其中一個。

route

(type.metadata.v3.MetadataKind.Route) 路由類型的 metadata。

必須設定 requestrouteclusterhost 中的其中一個。

cluster

(type.metadata.v3.MetadataKind.Cluster) 叢集類型的 metadata。

必須設定 requestrouteclusterhost 中的其中一個。

host

(type.metadata.v3.MetadataKind.Host) 主機類型的 metadata。

必須設定 requestrouteclusterhost 中的其中一個。

type.metadata.v3.MetadataKind.Request

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

表示與請求關聯的動態 metadata。

type.metadata.v3.MetadataKind.Route

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

表示來自 路由 的 metadata。

type.metadata.v3.MetadataKind.Cluster

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

表示來自 上游叢集 的 metadata。

type.metadata.v3.MetadataKind.Host

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

表示來自 上游主機 的 metadata。