AWS - Отправить сообщение SQS из лямбда-функции внутри VPC - PullRequest
0 голосов
/ 28 мая 2019

Я размещал лямбда-функцию с использованием AWS Chalice внутри VPC, поскольку я хочу, чтобы она обращалась к безсерверному экземпляру Aurora DB. Теперь я также хочу, чтобы эта функция посылала send_message () в SQS.

Я следовал Учебное пособие: отправка сообщения в очередь Amazon SQS из виртуального частного облака Amazon и смог вызвать SQS из моего EC2. Но даже тогда я не мог использовать свою функцию Lambda для вызова SQS.

Было бы очень полезно, если бы кто-то мог на самом деле сказать мне, как сделать все это вручную, а не с помощью стека CloudFormation, или, по крайней мере, сказать мне, как заставить работать конечную точку SQS.

Ответы [ 2 ]

0 голосов
/ 29 мая 2019

Похоже, что ваша ситуация такова:

  • VPC Amazon с базой данных Amazon Aurora
  • Лямбда-функция AWS, которая хочет взаимодействовать с базой данных Aurora AND очередь Amazon SQS

Лямбда-функция AWS может быть настроена следующим образом:

  • Подключен к подсети в VPC или
  • Не подключенк VPC, что означает, что он подключен к Интернету

Если вы хотите, чтобы функция AWS Lambda осуществляла связь с ресурсами внутри VPC И Интернета, вам потребуется:

  • Функция Lambda, подключенная к частной подсети
  • Шлюз NAT в общедоступной подсети
  • Шлюз Интернета, подключенный к общедоступной подсети (наиболее вероятно,уже в вашем VPC)

В качестве альтернативы, вы можете использовать конечную точку VPC для SQS , которая позволяет функции Lambda получать доступ к SQS без выхода в Интернет.Если вы хотите подключиться к нескольким службам (например, S3, SNS, SQS), вероятно, проще просто использовать шлюз NAT, а не создавать конечные точки VPC для каждой службы.

0 голосов
/ 28 мая 2019

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

...