結構匹配器 (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, 必要) 如果指定,則使用鍵在結構中擷取值。