Istio/Virtual服务-使用path参数重写URI的规则



用路径参数重写URI的正确语法是什么?我想重写所有与匹配的请求

/my-service/requests/{requestId}/history(与requestId路径参数的值无关(到

/requests/{requestId}/history

请注意,/my-service/requests/send已存在另一条规则。

感谢

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: my-service
namespace: world
spec:
hosts:
- "*"
gateways:
- internal-gateway.istio-system
http:
- match:
- uri:
prefix: "/my-service/requests/send"
ignoreUriCase: true
rewrite:
uri: "/requests/send"
route:
- destination:
host: my-service.world.svc.cluster.local
port:
number: 8080
- match:
- uri:
regex: "/my-service/requests/.*/history".   //<=for all path parameters  
ignoreUriCase: true
rewrite:
uri: "/my-service/requests/{requestId}/history" //<=??????
route:
- destination:
host: my-service.world.svc.cluster.local
port:
number: 8080

按顺序评估与URI的匹配,因此可以这样配置:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: my-service
namespace: world
spec:
hosts:
- "*"
gateways:
- internal-gateway.istio-system
http:
- match:
- uri:
prefix: "/my-service/requests/send"
ignoreUriCase: true
rewrite:
uri: "/requests/send"
route:
- destination:
host: my-service.world.svc.cluster.local
port:
number: 8080
- match:
- uri:
prefix: "/my-service/requests"
ignoreUriCase: true
rewrite:
uri: "/requests"
route:
- destination:
host: my-service.world.svc.cluster.local
port:
number: 8080

最新更新