我有一个 AWS Lambda 通过安全组连接到 VPC 中的我的 RDS 实例。将我的 AWS Lambda 放在 VPC 中意味着它无法访问公共互联网,除非我创建一个 VPC 端点。由于我的 Lambda 在 VPC 内,它需要一个连接到 SQS 服务 API 的 VPC 端点。我已经为 SQS 服务 API 创建了一个 VPC 端点,带有单独的
Security Group
(SQS-Lambda-SG)。在 AWS 中运行我的代码时,它成功连接到我的 RDS,但在尝试向 SQS 发送消息时卡住了。
我的 lambda 是一个 .NET 6 应用程序,使用 MassTransit 包向 SQS 发送消息。这在我的 EC2 中工作正常,具有相同的逻辑和设置,如下所示,但在我的 lambda 中不行。
我还为我的 Lambda 制作了一个单独的
Security Group
(Lambda-SQS-Endpoint-SG)
Lambda-SQS-Endpoint-SG 具有以下入站和出站规则:
[Inbound]
[Outbound]
SQS-Lambda-SG 具有以下入站和出站规则:
[Inbound]
[Inbound]
[Outbound]
Some-EC2-SG 是必需的,因为它在同一个 VPC 中并且也需要访问 SQS,并且 Some-EC2-SG 具有以下入站和出站规则:
[Inbound]
[Outbound]
API-SG 具有以下入站和出站规则:
[Inbound]
[Outbound]
API-SG属于我的API,运行在我VPC里面的
上,接收来自我EC2 instance
的调用。但这与我的 lambda 问题无关。Load Balancer
我已经包括了安全组,甚至可能更不相关的相关安全组只是为了显示完整的流量。我不知道为什么我的 lambda 无法连接/向 SQS 发送消息。在我将它放入 VPC 之前它有效,这是显而易见的,但现在它在 VPC 中,但它没有。有人可以帮我吗?