#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)
- Используйте прокси-ресурс с частной интеграцией в конфигурации маршрутов