Доступ к лямбда-функции внутри частной подсети с помощью API gateway

#amazon-web-services #aws-lambda #aws-api-gateway #serverless

#amazon-web-services #aws-lambda #aws-api-gateway #бессерверный

Вопрос:

У меня есть VPC, содержащий 2 лямбда-функции A amp; B:

  • A находится в 2 общедоступных подсетях
  • B находится в 2 частных подсетях с экземпляром базы данных RDS

Сам VPC имеет доступ к Интернету через экземпляр NAT. Мне нужен сторонний API для связи с B, но B находится в частной подсети. Теперь мне было интересно, решает ли API Gateway эту проблему или требует дополнительной работы.

Заранее спасибо

Ответ №1:

Если вы хотите, чтобы сторонняя сторона вызывала лямбда-функцию и передавала ей данные, то AWS API Gateway подходит для этой задачи. Это именно то, для чего предназначен API Gateway.

См.: Использование AWS Lambda с Amazon API Gateway — AWS Lambda

В качестве альтернативы вы можете использовать эластичный балансировщик нагрузки и заставить его вызывать лямбда-функцию.

Откуда: Использование AWS Lambda с балансировщиком нагрузки приложений — AWS Lambda

Вы также упоминаете, что у вас есть AWS Lambda «в 2 общедоступных подсетях». Функции AWS Lambda не должны быть настроены для подключения к общедоступным подсетям.Они должны быть либо настроены на использование «Без VPC» (в этом случае они могут напрямую выходить в Интернет), либо они должны быть подключены к частным подсетям (и могут использовать шлюз NAT или экземпляр NAT для доступа к Интернету, если требуется).

См. раздел: Настройка лямбда-функции для доступа к ресурсам в VPC — AWS Lambda:

Подключите свою функцию к частным подсетям для доступа к частным ресурсам. Если вашей функции требуется доступ в Интернет, используйте преобразование сетевых адресов (NAT). Подключение функции к общедоступной подсети не дает ей доступа к Интернету или общедоступного IP-адреса.

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

1. Спасибо за ваш ответ, Джон, но не могли бы вы объяснить, почему они не должны быть на общедоступных?

2. Добавлена ссылка на документацию и цитата из нее.