Нужно ли, чтобы AWS Lambda имел платный шлюз NAT для доступа к внешним ресурсам?

Я пытаюсь создать функцию AWS Lambda, которая должна вызываться навыком Amazon Echo. Функция Lambda должна подключаться к брокеру MQTT, которого нет в AWS, и я заметил, что функция Lambda сама по себе не может получить доступ к внешнему ресурсу. Я пробовал несколько конфигураций, и он смог подключиться к брокеру после создания шлюза NAT. Однако шлюз NAT является платной услугой, и мне интересно, нужна ли она.

Вот мой вопрос. Нужно ли в моей ситуации иметь заряженный NAT-шлюз, чтобы функция Lambda могла получить доступ к внешнему ресурсу? Если нет, что еще мне делать? Я приветствовал бы любую идею, которая позволила бы Echo Skill публиковать сообщение MQTT моему брокеру MQTT, даже без AWS Lambda.

Спасибо.


person rooot    schedule 23.05.2017    source источник


Ответы (2)


Вам нужен шлюз NAT только в том случае, если вы используете функцию Lambda в VPC. По умолчанию функция Lambda не запускается в VPC и имеет доступ к Интернету и внешним ресурсам.

Проверьте, работает ли выполняемая вами лямбда-функция в VPC.

person Yeshodhan Kulkarni    schedule 23.05.2017

Если вы используете функцию Lambda в VPC и хотите получить доступ к внешнему миру, тогда да, шлюз NAT необходим. Однако на самом деле вам не нужно использовать платный шлюз Amazon NAT.

Вместо этого вы можете создать инстанс EC2 с помощью общедоступного AMI шлюза NAT (руководство здесь). У меня была простая функция Lambda, требующая доступа как к Интернету, так и к базе данных в моем VPC. Плата за выделенный шлюз NAT казалась излишеством, поэтому я использовал этот образ, и он прекрасно работает даже на экземпляре t2.nano! Явно более дешевый вариант.

person Richard Francis    schedule 06.02.2019