Lambda函数将数据插入RDS

时间:2019-03-14 05:34:09

标签: mysql node.js aws-lambda amazon-rds

我正在使用Lambda将数据插入RDS。我有〜1000条记录。但是,我在测试功能时收到以下错误。当我检查数据库时,只有一些(〜160)条记录被成功插入。我找不到任何有用的信息,因为我确实已成功连接到数据库。

我使用节点,基本上使用Promise.map处理异步。我相信问题不在于代码,而是网络问题,也许是某些问题限制了我的查询数量。谁能给我一些见识?

{
  "cause": {
    "errorno": "ETIMEDOUT",
    "code": "ETIMEDOUT",
    "syscall": "connect",
    "fatal": true
  },
  "isOperational": true,
  "errorno": "ETIMEDOUT",
  "code": "ETIMEDOUT",
  "syscall": "connect",
  "fatal": true
}

2 个答案:

答案 0 :(得分:0)

您可以尝试在数据库中设置超时时间:

查看超时:

show VARIABLES like '%timeout%'

设置:

SET GLOBAL connect_timeout=28800
SET GLOBAL wait_timeout=28800
SET GLOBAL interactive_timeout=28800

答案 1 :(得分:0)

查询完成后,您需要关闭所有数据库连接,以使lambda正确退出,否则它将始终超时。

此外,请确保在lambda处理程序内启动数据库连接。这将确保在启动lambda函数时始终创建数据库连接,并且在重用lambda容器时永远不会遇到任何Connection closed问题