Доступ к Api Gateway из Lambda под VPC - PullRequest
0 голосов
/ 26 февраля 2019

Мне нужно получить некоторые данные из конечной точки ApiGateway, а затем, основываясь на ответе, сохранить эти данные в базе данных.

Я создал простую функцию Lambda, которая просто извлекает данные из конечной точки ApiGateway и распечатывает ихв консоли.Моя первая функция Lambda не имела никакой конфигурации VPC, и операция выборки работала как чудо.

const fetch = require('node-fetch');

exports.handler = async () => {
  const data = await fetch("https://<<ag-api-key>>.execute-api.us-east-1.amazonaws.com/v1/data");
  const response = await data.json();
  console.log(data, response);
}

Поскольку мне нужно хранить данные, полученные от конечной точки, в базу данных, которая работает под управлением VPC, я решил поместить Lambda в тот же VPC (этот виртуальный частный сервер настроил шлюзы Интернета и другие устройства для доступа к Интернету).В результате fetch начало операции завершается с ошибкой с 403 кодом ответа и {"message":"Forbidden"} телом ответа.

Ресурс Api Gateway не имеет никакой настраиваемой конфигурации домена и поддерживается другой командой, поэтому у меня нет прямогодоступ к его конфигурации

Может быть кто-нибудь может подсказать, как мне это исправить

1 Ответ

0 голосов
/ 28 февраля 2019
  1. Группы безопасности, проверьте, открыт ли порт 443
  2. Проверьте настройки CORS на API-шлюзе.
  3. Попробуйте подключиться к шлюзу API с помощью Postman / Fiddler или любого другого инструмента тестированиячтобы убедиться, что ваш API-шлюз подключен к сети, и вы можете получить желаемый ответ.
  4. Если вы используете частный API-шлюз (похоже, вы используете публичный просмотр URL-адреса), вам понадобятся некоторые данные заголовкаи другой URL.Я могу провести вас через это, если нужно.Я бы избежал частного шлюза API на вашем месте.

Дайте мне знать, если это поможет.Я сталкивался с этой проблемой много раз в разных ситуациях.

...