Поддержка группы захвата Istio HTTPRedirect
Примечание: у меня такое ощущение, что это не поддерживается в Istio, но мне любопытно, поддерживает ли эту функцию какой-либо другой обратный прокси, кроме NGINX?
Я пытаюсь перенаправить запросы из регулярного выражения: /abc/(?<appname>.*)?
к /cba/$appname
в VirtualService в Istio. Это кажется тривиальной проблемой, поскольку предполагается, что Istio заменит NGINX Ingress, поэтому кажется, что в их документации не так много упоминаний об этой проблеме.
Я нашел несколько других сообщений, которые касаются аналогичных проблем, но мне нужен явный ответ: это не поддерживается.
У меня есть следующий рабочий пример, который просто перенаправляет регулярное выражение /abc/.*
на статический адрес /cba/
.
http:
- match:
- uri:
regex: /abc/.*?
ignoreUriCase: true
rewrite:
uri: /cba/
- match:
- uri:
prefix: /
route:
- destination:
host: service_name
Добавление группы захвата в регулярное выражение URI: /abc/(?<hello>.+)?
приводит к следующей ошибке, несмотря на то, что регулярное выражение является синтаксически правильным.
gRPC config for type.googleapis.com/envoy.api.v2.RouteConfiguration rejected: Invalid regex '/abc/(?<hello>.+)?': One of *?+{ was not preceded by a valid regular expression.
Есть ли что-то, чего мне не хватает, или какие-либо указатели на решение этой проблемы?
Также примечание: в документации для HTTPRewrite указано, что поле uri должно быть строкой, что также заставляет меня беспокоиться, что эта функция не поддерживается.
Я пробовал просматривать документацию Envoy, и, похоже, это связано с тем, что они ее не поддерживают? Есть ли способ извлечь поля из регулярного выражения в любом обратном прокси, кроме NGINX?