Рейтинг:0

AWS HTTP Gateway: частная маршрутизация интеграции без переменных пути

флаг kr

Я впервые настраивал HTTP-шлюз и столкнулся с проблемой приватных интеграций. Я хочу, чтобы все мои интеграции были закрытыми, но это плохо работает с маршрутизацией.

У меня есть частная интеграция с $ по умолчанию маршрут и он отлично работает. Теперь я хочу, чтобы другая частная интеграция была смонтирована, скажем, под /микросервис/ и проксировать все его конечные точки.

Однако это кажется невозможным, потому что приватные интеграции запрашивают у вас внутренний ARN, а не URI, поэтому нет возможности использовать переменные пути, такие как {прокси+}. Это приводит к тому, что только корень моего микросервиса доступен через шлюз - все остальные пути просто ведут к $ по умолчанию маршрут.

Как можно настроить частную интеграцию, подобную этой? В идеале я хотел бы что-то вроде этого:

- /микросервис1/{прокси+}
- /микросервис2/{прокси+}
- $ по умолчанию

В настоящее время, как я понимаю, у меня есть только два варианта:

  • Открывайте мои сервисы миру и используйте общедоступную интеграцию с жадными переменными пути {прокси+} - не идеал
  • Сохраняйте частную интеграцию, но определяйте каждую конечную точку микросервиса как собственный маршрут на шлюзе - крайне раздражает в обслуживании

Есть ли хороший способ сделать это, что мне не хватает?

Рейтинг:0
флаг kr

Чтобы ответить на мой собственный вопрос - это возможно с сопоставление параметров запроса который преобразует запрос до того, как он достигнет бэкэнда:

  1. Создайте маршрут с жадной переменной пути: /микросервис/${прокси}
  2. В вашей частной интеграции создайте сопоставление путей: перезаписать:путь = /$request.path.proxy

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.