Можно ли использовать Ambassador prefix_regex и regex_rewrite при одном сопоставлении маршрутов?

#kubernetes #yaml #mapping #envoyproxy #ambassador

#kubernetes #yaml #сопоставление #envoyproxy #посол

Вопрос:

Я пытаюсь использовать Ambassador prefix_regex и regex_rewrite .
Я хочу, чтобы оба этих маршрута имели префиксы:

        /my/route/<something>
      /api/v1/my/route/<something>
  

будет сопоставлено с:
/my/route/<something>
Это то, что я пытался использовать:

 apiVersion: ambassador/v2
kind: Mapping
prefix_regex: true
prefix: (/api/v1)?/my/route
regex_rewrite:
    pattern: "/api/v1/my/route/(.*)"
    substitution: "/my/route/\1"
  

Использование regex_rewrite с обычными prefix работами, как и ожидалось
Использование prefix_regex с обычными rewrite работами, как и ожидалось
, но вместе я получаю 404 от посланника.

Есть идеи?

Я использую версию Ambassador 1.7.0

Ответ №1:

Решается путем добавления / .* в конце префикса.

prefix: (/api/v1)?/my/route/.*

Похоже, что prefix_regex автоматически добавляется $ в конце префикса, что означает, что нам нужно указать полный путь сопоставления, а не только префикс.