Поддержка группы захвата 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?

0 ответов

Другие вопросы по тегам