结构匹配器(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
(repeated type.matcher.v3.StructMatcher.PathSegment, REQUIRED) 从结构中检索值的路径。
- value
(type.matcher.v3.ValueMatcher, REQUIRED) 如果通过路径检索的值与该值匹配,则 StructMatcher 匹配。
type.matcher.v3.StructMatcher.PathSegment
[type.matcher.v3.StructMatcher.PathSegment proto]
指定从结构中检索值的路径中的段。
{
"key": ...
}
- key
(string, REQUIRED) 如果指定,使用键在结构中检索值。