Почему aws lambda в VPC не может отправлять сообщения в SNS?

Моя лямбда-функция может отправлять сообщение в SNS с помощью метода публикации без VPC, но время ожидания истекает, когда я помещаю его в VPC, у которого есть доступ к общедоступному Интернету с маршрутом и Интернет-шлюзом.

Отредактировано

У меня есть лямбда в общедоступной подсети, в которой 0.0.0.0/0 уже маршрутизируется на интернет-шлюз, поэтому я не могу снова направить ее на NAT. Возможно ли присвоить EIP лямбда-функции


person Hello lad    schedule 04.07.2016    source источник


Ответы (2)


Вам необходимо добавить шлюз NAT в ваш VPC, чтобы лямбда-функции (и другие вещи в вашем VPC, у которых нет общедоступного IP-адреса) могли получить доступ к чему-либо за пределами VPC. Вам следует прочитать раздел Что нужно знать в это объявление AWS.

person Mark B    schedule 04.07.2016
comment
Привет, Марк , спасибо за ответ. Это все объясняет. Но у меня есть лямбда в общедоступной подсети, в которой 0.0.0.0/0 уже маршрутизируется на интернет-шлюз, поэтому я не могу снова направить ее на NAT. Можно ли назначить EIP лямбда-функции, чтобы решить эту проблему? - person Hello lad; 04.07.2016
comment
Нет, вам нужно использовать NAT, вы не можете назначить эластичный IP-адрес лямбда-функции. Как это вообще будет работать, если одновременно может работать много экземпляров функции Lambda? Однако вы можете добавить NAT в свою общедоступную подсеть. Или вы можете добавить еще одну подсеть со шлюзом NAT к своему VPC и переместить функцию Lambda в эту подсеть. - person Mark B; 04.07.2016
comment
Вы не можете добавить функцию NAT в общедоступную подсеть. По определению общедоступная подсеть использует шлюз Интернета в качестве маршрута по умолчанию. Интерфейсы, использующие устройство NAT, должны находиться в частных подсетях. Шлюз NAT или сам экземпляр переходит в общедоступную подсеть, а маршрут по умолчанию для частной подсети указывает на устройство NAT. - person Michael - sqlbot; 05.07.2016
comment
Разве соцсети нет в VPC? Это не? Если он находится в VPC, зачем нужен шлюз NAT? - person Jwan622; 02.10.2019
comment
@ Jwan622 SNS не работает внутри вашего VPC. - person Mark B; 02.10.2019

Внешний Интернет недоступен, когда включен VPC. Итак, когда вы отправляете запрос на публикацию в теме SNS с использованием таких библиотек, как boto3, ваши запросы будут истекать по таймауту.

NAT - один из вариантов, но более экономичным способом было бы настроить конечную точку интерфейса для SNS из вашей VPN. Вы можете перейти в консоль AWS VPN, создать конечную точку и выбрать SNS в качестве службы.

Вот более подробная информация о том, как настроить конечную точку интерфейса: https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint

person Deep Patel    schedule 19.12.2019