我想知道是否有一种方法可以在特使中执行多次完全匹配? 例如有兴趣根据标题属性将流量引导到两个不同的集群,
- match:
prefix: "/service/2"
headers:
- name: X-SOME-TAG
exact_match: "SomeString"
这可以按预期工作,但是可以在精确匹配中指定要在列表中匹配的字符串列表,例如完全匹配:[“ some_string”,另一个“]?
我也可以这样写,
- match:
prefix: "/service/2"
headers:
- name: X-SOME-TAG
exact_match: "some_string"
route:
cluster: service1
- match:
prefix: "/service/2"
headers:
- name: X-SOME-TAG
exact_match: "another"
route:
cluster: service1
但不确定,这是否是不必要的冗长和正确的方法。
还是我必须为此使用regex_match之类的样式?
对不起,我只是无法使它正常工作,请使用使节文档中的示例进行前端代理测试,因此得出结论。谢谢!
答案 0 :(得分:1)
根据您的问题,我不确定是要对匹配还是对或进行匹配。如果希望两者都必须匹配(AND),则两个匹配项都必须位于同一return
部分下,否则,请将它们放在单独的- match:
部分中。上面提供的第二个示例等效于OR,即“如果X-SOME-TAG ==“ some_string”或X-SOME-TAG ==“ another”,则路由到service1。
答案 1 :(得分:0)
您可以尝试:
- match:
prefix: "/service/2"
headers:
- name: X-SOME-TAG
safe_regex_match:
google_re2: {}
regex: "some_string|another"
route:
cluster: service1