我在 VPC 中使用 AWS Chalice 托管了一个 Lambda 函数,因为我希望它访问无服务器 Aurora 数据库实例。现在我还希望这个函数将 send_message() 发送到 SQS。
我关注了Tutorial: Sending a Message to an Amazon SQS Queue from Amazon Virtual Private Cloud并且能够从我的 EC2 内部调用 SQS。但即便如此,我也无法使用我的 Lambda 函数来调用 SQS。
如果有人能真正告诉我如何手动完成整个事情而不是使用 CloudFormation 堆栈,或者至少告诉我如何让 SQS 端点工作,那将非常有帮助。
最佳答案
看来你的情况是:
- 带有 Amazon Aurora 数据库的 Amazon VPC
- 想要与 Aurora 数据库通信的 AWS Lambda 函数和 Amazon SQS 队列
AWS Lambda 函数可以配置为:
- 连接到 VPC 中的子网,或者
- 未连接到 VPC,这意味着它已连接到 Internet
如果您希望 AWS Lambda 函数与 VPC 内的资源和 Internet 通信,那么您将需要:
- 连接到私有(private)子网的 Lambda 函数
- 公共(public)子网中的 NAT 网关
- 连接到公共(public)子网的互联网网关(它很可能已经在您的 VPC 中)
或者,您可以使用SQS 的 VPC 端点,它允许 Lambda 函数无需访问 Internet 即可访问 SQS。如果您想要连接到多个服务(例如 S3、SNS、SQS),使用 NAT 网关可能比为每个服务创建 VPC 端点更容易。
关于amazon-web-services - AWS - 从 VPC 内的 Lambda 函数向 SQS 发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56345504/