#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. Добавлена ссылка на документацию и цитата из нее.