結構匹配器 (proto)

type.matcher.v3.StructMatcher

[type.matcher.v3.StructMatcher proto]

StructMatcher 提供一個通用介面,用於檢查給定的值是否在 google.protobuf.Struct 中匹配。它使用 path 從結構中擷取值,然後檢查是否與指定的值匹配。

例如,對於以下結構

fields:
  a:
    struct_value:
      fields:
        b:
          struct_value:
            fields:
              c:
                string_value: pro
        t:
          list_value:
            values:
              - string_value: m
              - string_value: n

以下 MetadataMatcher 會匹配,因為路徑 [a, b, c] 將從 Metadata 中擷取字串值 “pro”,該值與指定的前綴匹配項匹配。

path:
- key: a
- key: b
- key: c
value:
  string_match:
    prefix: pr

以下 StructMatcher 會匹配,因為程式碼會匹配路徑 [a, t] 中清單的其中一個字串值。

path:
- key: a
- key: t
value:
  list_match:
    one_of:
      string_match:
        exact: m

StructMatcher 的一個使用範例是在 envoy.v*.core.Node 中匹配中繼資料。

{
  "path": [],
  "value": {...}
}
path

(重複 type.matcher.v3.StructMatcher.PathSegment, 必要) 從結構中擷取 Value 的路徑。

value

(type.matcher.v3.ValueMatcher, 必要) 如果由路徑擷取的值與此值匹配,則 StructMatcher 會匹配。

type.matcher.v3.StructMatcher.PathSegment

[type.matcher.v3.StructMatcher.PathSegment proto]

指定路徑中的區段,以從結構中擷取值。

{
  "key": ...
}
key

(string, 必要) 如果指定,則使用鍵在結構中擷取值。