3

我在 VPC 中使用 AWS Chalice 托管了一个 Lambda 函数,因为我希望它访问无服务器 Aurora 数据库实例。现在我还希望这个函数将send_message() 发送到SQS。

我遵循教程:从 Amazon Virtual Private Cloud 向 Amazon SQS 队列发送消息,并且能够从我的 EC2 内部调用 SQS。但即便如此,我也无法使用我的 Lambda 函数来调用 SQS。

如果有人能真正告诉我如何手动完成整个工作而不是使用 CloudFormation 堆栈,或者至少告诉我如何让 SQS 端点正常工作,那将非常有帮助。

4

2 回答 2

2

看来你的情况是:

  • 具有 Amazon Aurora 数据库的 Amazon VPC
  • 想要与 Aurora 数据库Amazon SQS 队列通信的 AWS Lambda 函数

AWS Lambda 函数可以配置为:

  • 连接到 VPC 中的子网,或
  • 未连接到 VPC,这意味着它已连接到 Internet

如果您希望 AWS Lambda 函数与 VPCInternet 内的资源进行通信,那么您将需要:

  • 连接到私有子网的 Lambda 函数
  • 公共子网中的 NAT 网关
  • 连接到公共子网的 Internet 网关(很可能已经在您的 VPC 中)

或者,您可以使用VPC Endpoint for SQS,它允许 Lambda 函数访问 SQS 而无需访问 Internet。如果您想连接到多个服务(例如 S3、SNS、SQS),使用 NAT 网关可能比为每个服务创建 VPC 端点更容易。

于 2019-05-29T03:19:45.787 回答
0

您需要将 SQS 的VPC 终端节点添加到您的 VPC,或者将 Lambda 函数放置在具有到 NAT 网关的路由的子网中。

于 2019-05-28T15:41:59.667 回答