1

我的 AWS Lambda 函数在连接到另一个 VPC 中的 RDS 实例时超时。VPC 是对等的。

我检查过的事情:

  • Lambda 在正确的 VPC 中
  • RDS 在另一个 VPC 内
  • RDS 存在于对等互连的子网中
  • VPC 对等互连被“接受”
  • 5432Lambda 安全组对 RDS 安全组的正确端口 ( ) 具有入口权限
  • Lambda 安全组对任何端口上的任何位置都有出口权限
  • 存在从 Lambda VPC 子网到对等互连的路由表条目
  • 存在从 RDS VPC 子网到对等互连的路由表条目

我还能检查/利用什么来解决此连接问题?


更新

  • 为两个 VPC 启用 DNS 主机名和 DNS 解析

更新

我尝试了以下方法:

  • 在与 Lambda 相同的子网上创建 EC2 实例
  • 将 lambda SG 分配给 EC2
  • SSH 连接到 EC2
  • telnet到 RDS:
telnet rds.xxxxxxxxxx.eu-west-2.rds.amazonaws.com 5432
Trying 10.11.65.225...
Connected to rds.xxxxxxxxxx.eu-west-2.rds.amazonaws.com.
Escape character is '^]'.
^CConnection closed by foreign host.

所以EC2可以连接。因此问题必须与lambda有关。

接下来我可以尝试什么?

4

1 回答 1

1

我的问题(也许你也是?)是查询超时,而不是连接尝试。SELECT 1 AS x您可以通过将查询更改为或类似来测试这一点。解决方案是优化查询,使其能够在合理的时间内运行。

启动具有与 Lambda 类似设置的 EC2 并通过 SSH 连接的技巧是一个很好的技巧。

于 2021-05-28T13:40:21.520 回答