统一匹配器 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_listmatcher_tree 中的一个。

matcher_tree

(.xds.type.matcher.v3.Matcher.MatcherTree) 要评估的匹配树。

只能设置 matcher_listmatcher_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。

只能设置 matcheraction 中的一个。

action

(.xds.core.v3.TypedExtensionConfig) 要采取的协议特定操作。

只能设置 matcheraction 中的一个。

.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_predicateor_matcherand_matchernot_matcher 中的一个。

or_matcher

(.xds.type.matcher.v3.Matcher.MatcherList.Predicate.PredicateList) 要进行或运算的谓词列表。

只能设置 single_predicateor_matcherand_matchernot_matcher 中的一个。

and_matcher

(.xds.type.matcher.v3.Matcher.MatcherList.Predicate.PredicateList) 要进行与运算的谓词列表。

只能设置 single_predicateor_matcherand_matchernot_matcher 中的一个。

not_matcher

(.xds.type.matcher.v3.Matcher.MatcherList.Predicate) 谓词的反转

只能设置 single_predicateor_matcherand_matchernot_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_matchcustom_match 中的一个。

custom_match

(.xds.core.v3.TypedExtensionConfig) 用于自定义匹配逻辑的扩展。

只能设置 value_matchcustom_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_mapprefix_match_mapcustom_match 中的一个。

prefix_match_map

(.xds.type.matcher.v3.Matcher.MatcherTree.MatchMap) 最长匹配前缀获胜。

要查找输入值的精确匹配或前缀匹配映射。如果查找成功,则匹配被视为成功,并且使用相应的 OnMatch。

只能设置 exact_match_mapprefix_match_mapcustom_match 中的一个。

custom_match

(.xds.core.v3.TypedExtensionConfig) 用于自定义匹配逻辑的扩展。

要查找输入值的精确匹配或前缀匹配映射。如果查找成功,则匹配被视为成功,并且使用相应的 OnMatch。

只能设置 exact_match_mapprefix_match_mapcustom_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>)