我有一个自定义标题
test: someothervalues;host:https://test-service:443
test
字,我想找到一种方法将请求路由到我的 istio 虚拟服务中的 https://test-service:443 。
我知道我可以使用正则表达式来检查该值是否包含测试词。但是我不知道如何存储捕获块的正则表达式结果以便在目标块中使用它。
所需的模板和结果应如下所示:
yaml 模板
- match:
- headers:
test-host:
regex: .*(^|;)(host:http[s]?:\/\/)(.*test.*):([0-9]*)[;]?.*
name: to-test-host
route:
- destination:
host: {{capture group 3 of the above regex }}
port:
number: {{capture group 4 of the above regex }}
结果
- match:
- headers:
test-host:
regex: .*(^|;)(host:http[s]?:\/\/)(.*test.*):([0-9]*)[;]?.*
name: to-test-host
route:
- destination:
host: test-service # this is group 3 of the above regex
port:
number: 443 # this is group 4 of the above regex