Можно ли удалить API-шлюз из уравнения для обслуживания Lambda через publi c inte rnet? - PullRequest
4 голосов
/ 21 июня 2020

В настоящее время мое приложение находится в лямбда-выражении, которое я обслуживаю с помощью HTTP API (API Gateway V2). Эта установка существует во многих регионах. Это означает, что API Gateway вызывает лямбда в том же регионе, который обращается к глобальной таблице DynamoDB в том же регионе. Я использую Route 53 для обслуживания ближайшего к пользователю шлюза API.

Проблема, с которой я столкнулся: шлюз API не поддерживает перенаправление с http на https. Я могу добиться этого с помощью CloudFront. Но это увеличит стоимость, а также задержку.

Могу ли я удалить API Gateway из уравнения и использовать Lambda@Edge для доступа к таблице DynamoDB рядом с пользователем? Можно ли использовать CloudFront вместо API Gateway?

1 Ответ

4 голосов
/ 21 июня 2020

Да, можно. docs write:

Функции, запускаемые событиями запроса и ответа источника, а также функции, запускаемые событиями запроса и ответа средства просмотра , могут выполнять сетевые вызовы ресурсов на inte rnet и в AWS сервисах, таких как корзины Amazon S3, DynamoDB таблицы или инстансы Amazon EC2.

Однако существует много ограничения на то, что может lambda@edge, по сравнению с обычной лямбдой. Примеры:

  • только python и nodejs,
  • трудности при отладке, так как лямбда-журналы будут находиться в регионе при его запуске, а не в одном центральном регионе,
  • лимиты времени ожидания для вызовов DynamoDb (5 или 30 секунд) в зависимости от источника или функции просмотра,
  • без лямбда-слоев
  • максимальная память 128 МБ для сторонних функций просмотра
  • размер пакета развертывания может составлять не более 1 МБ для сторонних функций просмотра

Таким образом, если вы можете работать с этими и другими ограничениями lambda@edge, то вы можете использовать его для работы с DynamoDb.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...