Шлюз API AWS с балансировщиком нагрузки VPC перенаправляет на неверный путь (префикс не опущен)

#amazon-web-services #aws-api-gateway #aws-application-load-balancer

Вопрос:

Я хочу использовать шлюз API для маршрутизации между несколькими микросервисами. Например: domain.com/app1 и domain.com/app2 т. Д.

  • Каждая служба имеет внутренний балансировщик нагрузки приложений (ALB).
  • Шлюз API имеет правильно настроенную ссылку VPC.

Проблема в том, что такие маршруты, как domain.com/app1/hello перенаправляются на internal.app1/app1/hello вместо internal.app1/hello .

  • Обратите внимание, что префикс app1 не удален.

Это может быть решено, когда я использую перенаправление HTTP в шлюзе API, но для этого требуется внешний балансировщик нагрузки, которого я хочу избежать. Я не видел возможности использовать переменные пути с частной интеграцией ALB.

Пожалуйста, посоветуйте. Заранее спасибо.

Комментарии:

1. REST API или HTTP?

2. @AndrewGillis HTTP

3. Я предполагаю, что вы используете консоль? Вы пробовали указать сопоставление параметров через IaC или CLI?

4. @AndrewGillis Да, я использую консоль управления AWS

Ответ №1:

Проблема решена.

Решение заключается в использовании шлюза REST API (вместо шлюза HTTP), интегрированного с балансировщиком сетевой нагрузки (NLB) по ссылке VPC.

API AWS REST в AWS API Gateway позволяет использовать переменные пути с частной интеграцией (в данном случае NLB).

Краткое изложение решения:

  • API Шлюз REST API
  • Балансировщик Нагрузки Частной Сети
  • Ссылка REST API VPC (для NLB)
  • Используйте прокси-ресурс с частной интеграцией в конфигурации маршрутов