AWS Lambda 无法连接到 AWS SQS(VPC 端点)

问题描述 投票:0回答:0

我有一个 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 具有以下入站和出站规则:

  • HTTPS - 443 - SQS-Lambda-SG 作为来源
    [Inbound]
  • HTTPS - 443 - SQS-Lambda-SG 作为来源
    [Outbound]

SQS-Lambda-SG 具有以下入站和出站规则:

  • HTTPS - 443 - Lambda-SQS-Endpoint-SG 作为源
    [Inbound]
  • HTTPS - 443 - Some-EC2-SG 作为来源
    [Inbound]
  • HTTPS - 443 - Lambda-SQS-Endpoint-SG 作为源
    [Outbound]

Some-EC2-SG 是必需的,因为它在同一个 VPC 中并且也需要访问 SQS,并且 Some-EC2-SG 具有以下入站和出站规则:

  • PostgreSQL - 5432 - API-SG 作为源
    [Inbound]
  • HTTPS - 443 - SQS-Lambda-SG 作为来源
    [Outbound]

API-SG 具有以下入站和出站规则:

  • HTTP - 80 - 0.0.0.0/0 作为源
    [Inbound]
  • 所有流量 - 所有 - 0.0.0.0/0 作为来源
    [Outbound]

API-SG属于我的API,运行在我VPC里面的

EC2 instance
上,接收来自我
Load Balancer
的调用。但这与我的 lambda 问题无关。

我已经包括了安全组,甚至可能更不相关的相关安全组只是为了显示完整的流量。我不知道为什么我的 lambda 无法连接/向 SQS 发送消息。在我将它放入 VPC 之前它有效,这是显而易见的,但现在它在 VPC 中,但它没有。有人可以帮我吗?

aws-lambda amazon-sqs amazon-vpc masstransit vpc-endpoint
© www.soinside.com 2019 - 2024. All rights reserved.