为什么我的 Lambda 无法访问互联网?

Why is my Lambda unable to access the internet?

我有一个可以从 API 网关或 ALB 请求触发的 Lambda 函数。我还有一个 RDS Aurora PostgreSQL 实例,它们都在一个 VPC 中 运行。

我可以很好地从 Lambda 连接到 RDS 实例,但是我无法访问互联网,例如尝试向 https://jsonplaceholder.typicode.com/todos/1 发出请求将导致超时。

我也无法使用 SQL 客户端(例如 DBeaver)连接到远程数据库。

下面是一些详细信息,但如果您需要其他任何信息,请告诉我。我被难住了。

Lambda 入站规则

Security group ID       Ports   Source
sg-0f2c4426c8fc85235    80      0.0.0.0/0
sg-0f2c4426c8fc85235    5432    0.0.0.0/0
sg-0f2c4426c8fc85235    All     sg-0f2c4426c8fc85235
sg-0f2c4426c8fc85235    22      0.0.0.0/0
sg-0f2c4426c8fc85235    443     0.0.0.0/0

Lambda 出站规则

Security group ID       Ports   Destination
sg-0f2c4426c8fc85235    All     0.0.0.0/0

RDS 连接

VPC

Public 子网

私有子网

编辑

Nat 网关(与 public 子网关联)

路线Tables

路线Table路线

编辑 2

Lambda 子网

Lambda 函数应该连接到私有子网。

这使得互联网流量能够路由到 public 子网中的 NAT 网关。

如果 Lambda 函数连接到 public 子网,它将无法访问互联网。

我认为是两件事的结合。 1,正如所指出的,Lambda 应该只连接到私有子网。

我想我也混淆了 public 和私有子网之间的可用性区域?

无论如何,Lambda 现在已成功连接到 RDS,访问了外部 API,我也可以通过 DBeaver 进行连接。

非常感谢。