Сбой AWS API Gateway при вызове бэкэнд-API с использованием частного IP-адреса - PullRequest
0 голосов
/ 10 января 2019

Я создал публичный API, используя шлюз API AWS с ресурсом cars и методом GET. У меня также есть внутренний API, /api/routing, который размещен на экземпляре Windows EC2. Внутренний API принимает только запрос POST и используется для маршрутизации запроса на основе некоторых значений заголовка.

В запросе интеграции у меня также есть настройка Mapping Template, чтобы он мог POST данные к api/routing

Таким образом, запрос на интеграцию для cars публичного API выглядит следующим образом

enter image description here

Входящие правила для экземпляра EC2

enter image description here

Выпуск
URL-адрес конечной точки использует частный ip экземпляра EC2. Когда я тестирую cars API, я получаю ошибку

Execution failed due to configuration error: Invalid endpoint address

Если я изменю URL-адрес конечной точки на использование общедоступного IP-адреса , тогда он будет работать как положено

В конце концов, я хотел бы получить доступ к бэкэнд-API, используя private-ip Экземпляр EC2 - это бесплатный экземпляр, созданный AWS.

Я понимаю, что если у меня есть VPC, то в API Gateway мне нужно настроить VPC Links, но я не создал ни одного VPC (если только по умолчанию AWS не создаст его).

1 Ответ

0 голосов
/ 10 января 2019

нашел это. После создания ссылки VPC я все еще выбирал Integration Type как HTTP .. это должно быть VPC Link

...