【发布时间】:2021-10-11 17:18:38
【问题描述】:
我有一个使用 mysql 运行节点应用程序的 AWS Lambda 函数,该函数始终无法连接到 RDS 实例并出现以下错误:Error: Handshake inactivity timeout。
应该无关紧要的小细节:该应用程序是使用 TypeORM 的 Nest 应用程序。但是,我还在应用程序启动中包含了一个测试函数,它直接使用mysql 包执行原始连接和查询,当在我的本地计算机上运行应用程序时连接到实例时确实成功。我仔细检查了 Lambda 函数中的环境变量是否设置正确。
我多次确保我具有以下安全组规则(包含 RDS 实例的安全组上的入站和包含 Lambda 函数的安全组上的出站)以及正确的源/目标:
- 正确的源/目标安全组(Lambda 的 sg 中的 RDS sg,RDS sg 中的 Lambda 的 sg)
- 我的 VPC 的 CIDR(一切都在同一个 VPC 下)
- RDS 和 Lambda 函数使用的每个子网的 CIDR(每个 CIDR 一个规则)(我什至将 Lambda 函数放在与 RDS 实例相同的子网中)
我已经根据上述规则尝试了所有流量和仅 TPC 的端口 3306。
我已经用尽谷歌来找到上述规则来尝试并对此束手无策。我在几个答案中发现源/目标安全组的规则应该可以解决问题,但我尝试了其他规则只是为了看看它们是否有效。有人有其他建议可以尝试吗?
【问题讨论】:
标签: mysql amazon-web-services aws-lambda amazon-rds