为什么我的 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 进行连接。
非常感谢。
我有一个可以从 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 进行连接。
非常感谢。