我有一个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连接
VPC
公共子网
私有子网
编辑
Nat网关(与公共子网关联)
路由表
路由表路由
编辑2
Lambda子网
答案 0 :(得分:4)
Lambda函数应该仅连接到专用子网。
这使Internet绑定流量可以路由到公共子网中的NAT网关。
如果Lambda功能连接到公共子网,它将无法访问Internet。
答案 1 :(得分:0)
我认为两件事混合在一起。如前所述,Lambda应该仅连接到专用子网。
我想我还会混淆公共子网和私有子网之间的可用性区域?
无论如何,Lambda现在可以成功连接到RDS,使用外部API,我也可以通过DBeaver连接。
非常感谢。