统一匹配器 API(proto)
.xds.type.matcher.v3.Matcher
[.xds.type.matcher.v3.Matcher proto]
一个匹配器,它可以遍历匹配树以产生匹配操作。在匹配过程中,将遍历树,直到找到匹配项,或者如果找不到匹配项,则将评估由最具体的 on_no_match 指定的操作。由于 on_no_match 可能导致评估另一个匹配树,因此此过程可能会重复多次,直到最终确定 OnMatch(或无匹配)。
{
"matcher_list": {...},
"matcher_tree": {...},
"on_no_match": {...}
}
- matcher_list
(.xds.type.matcher.v3.Matcher.MatcherList) 要评估的匹配器线性列表。
只能设置 matcher_list 或 matcher_tree 中的一个。
- matcher_tree
(.xds.type.matcher.v3.Matcher.MatcherTree) 要评估的匹配树。
只能设置 matcher_list 或 matcher_tree 中的一个。
- on_no_match
(.xds.type.matcher.v3.Matcher.OnMatch) 如果上面没有匹配器匹配,则可选的 OnMatch 用于(例如,如果上面没有指定匹配器,或者如果上面指定的匹配器均未成功)。如果上面没有匹配器匹配并且此字段未填充,则匹配将被视为不成功。
.xds.type.matcher.v3.Matcher.OnMatch
[.xds.type.matcher.v3.Matcher.OnMatch proto]
匹配成功时要执行的操作。
{
"matcher": {...},
"action": {...}
}
- matcher
(.xds.type.matcher.v3.Matcher) 要评估的嵌套匹配器。如果嵌套匹配器不匹配并且未指定 on_no_match,则此匹配器被认为未匹配,即使此级别或更高级别的谓词返回 true。
- action
(.xds.core.v3.TypedExtensionConfig) 要采取的协议特定操作。
.xds.type.matcher.v3.Matcher.MatcherList
[.xds.type.matcher.v3.Matcher.MatcherList proto]
字段匹配器的线性列表。字段匹配器按顺序评估,第一个匹配项获胜。
{
"matchers": []
}
- matchers
(repeated .xds.type.matcher.v3.Matcher.MatcherList.FieldMatcher, REQUIRED) 匹配器列表。第一个匹配项获胜。
.xds.type.matcher.v3.Matcher.MatcherList.Predicate
[.xds.type.matcher.v3.Matcher.MatcherList.Predicate proto]
用于确定匹配是否成功的谓词。
{
"single_predicate": {...},
"or_matcher": {...},
"and_matcher": {...},
"not_matcher": {...}
}
- single_predicate
(.xds.type.matcher.v3.Matcher.MatcherList.Predicate.SinglePredicate) 要评估的单个谓词。
只能设置 single_predicate、or_matcher、and_matcher 或 not_matcher 中的一个。
- or_matcher
(.xds.type.matcher.v3.Matcher.MatcherList.Predicate.PredicateList) 要进行或运算的谓词列表。
只能设置 single_predicate、or_matcher、and_matcher 或 not_matcher 中的一个。
- and_matcher
(.xds.type.matcher.v3.Matcher.MatcherList.Predicate.PredicateList) 要进行与运算的谓词列表。
只能设置 single_predicate、or_matcher、and_matcher 或 not_matcher 中的一个。
- not_matcher
(.xds.type.matcher.v3.Matcher.MatcherList.Predicate) 谓词的反转
只能设置 single_predicate、or_matcher、and_matcher 或 not_matcher 中的一个。
.xds.type.matcher.v3.Matcher.MatcherList.Predicate.SinglePredicate
[.xds.type.matcher.v3.Matcher.MatcherList.Predicate.SinglePredicate proto]
用于单个输入字段的谓词。
{
"input": {...},
"value_match": {...},
"custom_match": {...}
}
- input
(.xds.core.v3.TypedExtensionConfig, REQUIRED) 要匹配的输入字段的协议特定规范。
- value_match
(.xds.type.matcher.v3.StringMatcher) 内置字符串匹配器。
只能设置 value_match 或 custom_match 中的一个。
- custom_match
(.xds.core.v3.TypedExtensionConfig) 用于自定义匹配逻辑的扩展。
只能设置 value_match 或 custom_match 中的一个。
.xds.type.matcher.v3.Matcher.MatcherList.Predicate.PredicateList
[.xds.type.matcher.v3.Matcher.MatcherList.Predicate.PredicateList proto]
两个或多个匹配器的列表。用于允许在 oneof 中使用列表。
{
"predicate": []
}
- predicate
(repeated .xds.type.matcher.v3.Matcher.MatcherList.Predicate, REQUIRED)
.xds.type.matcher.v3.Matcher.MatcherList.FieldMatcher
[.xds.type.matcher.v3.Matcher.MatcherList.FieldMatcher proto]
单个匹配器。
{
"predicate": {...},
"on_match": {...}
}
- predicate
(.xds.type.matcher.v3.Matcher.MatcherList.Predicate, REQUIRED) 确定匹配是否成功。
- on_match
(.xds.type.matcher.v3.Matcher.OnMatch, REQUIRED) 匹配成功时要执行的操作。
.xds.type.matcher.v3.Matcher.MatcherTree
[.xds.type.matcher.v3.Matcher.MatcherTree proto]
{
"input": {...},
"exact_match_map": {...},
"prefix_match_map": {...},
"custom_match": {...}
}
- input
(.xds.core.v3.TypedExtensionConfig, REQUIRED) 要匹配的输入字段的协议特定规范。
- exact_match_map
(.xds.type.matcher.v3.Matcher.MatcherTree.MatchMap) 要在其中查找输入值的精确匹配或前缀匹配映射。如果查找成功,则匹配被视为成功,并且使用相应的 OnMatch。
只能设置 exact_match_map、prefix_match_map 或 custom_match 中的一个。
- prefix_match_map
(.xds.type.matcher.v3.Matcher.MatcherTree.MatchMap) 最长匹配前缀获胜。
要查找输入值的精确匹配或前缀匹配映射。如果查找成功,则匹配被视为成功,并且使用相应的 OnMatch。
只能设置 exact_match_map、prefix_match_map 或 custom_match 中的一个。
- custom_match
(.xds.core.v3.TypedExtensionConfig) 用于自定义匹配逻辑的扩展。
要查找输入值的精确匹配或前缀匹配映射。如果查找成功,则匹配被视为成功,并且使用相应的 OnMatch。
只能设置 exact_match_map、prefix_match_map 或 custom_match 中的一个。
.xds.type.matcher.v3.Matcher.MatcherTree.MatchMap
[.xds.type.matcher.v3.Matcher.MatcherTree.MatchMap proto]
配置匹配器的映射。用于允许在 oneof 中使用映射。
{
"map": {...}
}
- map
(repeated map<string, .xds.type.matcher.v3.Matcher.OnMatch>)