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

时间:2019-08-22 11:33:55

标签: amazon-web-services aws-lambda serverless-framework

我有一个Lambda函数,可以从API网关或ALB请求中触发。我还有一个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连接

rds

VPC vpc

公共子网 pubsub

私有子网 prisub

编辑

Nat网关(与公共子网关联) nat

路由表 rtables

路由表路由 rtablerouteA

rtablerouteB

rtablerouteC

编辑2

Lambda子网

lamsub

2 个答案:

答案 0 :(得分:4)

Lambda函数应该连接到专用子网。

这使Internet绑定流量可以路由到公共子网中的NAT网关。

如果Lambda功能连接到公共子网,它将无法访问Internet。

答案 1 :(得分:0)

我认为两件事混合在一起。如前所述,Lambda应该仅连接到专用子网。

我想我还会混淆公共子网和私有子网之间的可用性区域?

无论如何,Lambda现在可以成功连接到RDS,使用外部API,我也可以通过DBeaver连接。

非常感谢。

相关问题