【发布时间】:2019-08-22 22:21:17
【问题描述】:
我有一个可以从 API 网关或 ALB 请求触发的 Lambda 函数。我还有一个 RDS Aurora PostgreSQL 实例,它们都在 VPC 中运行。
我可以从 Lambda 连接到 RDS 实例,但是我无法访问互联网,例如尝试向https://jsonplaceholder.typicode.com/todos/1 发起请求将导致超时。
我也无法使用 DBeaver 等 SQL 客户端连接到远程数据库。
以下是一些详细信息,但如果您需要其他信息,请告诉我。我被难住了。
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 子网
【问题讨论】:
-
可以分享一下路由表吗?
-
我希望你在这里犯了一个常见的错误,你应该在公共子网中创建 NAT 网关并更新私有子网的路由表。通常人们在私有子网中创建NAT网关,这实际上是一个死锁。 - docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html
-
@RafafTahsin - 抱歉,我错了,NAT 在公共子网中。我已经编辑了原始帖子以添加 NAT 和路由表的图像。
-
Lambda 函数附加到哪个子网?
-
@Craig 与私有子网关联的路由表 (rtb-0d15b06e1cff79515) 没有到 NAT 网关的路由。此外,如果您希望 Lamba 函数使用 NAT 网关,则它应该仅位于私有子网中。查看此链接:docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html
标签: amazon-web-services aws-lambda serverless-framework