为什么AWS Lambda在使用Knex.js时会保持计时

时间:2018-03-18 11:14:13

标签: amazon-web-services aws-lambda amazon-rds knex.js

我有一个AWS Lambda函数,它使用Knex.js NPM模块连接到RDS实例。从数据库中获取数据并调用callback()函数后,AWS Lambda将不会退出,也不会发回响应并将超时。

如果我console.log()来自DB的结果我看到了数据,这意味着从DB中检索信息是成功的。

1 个答案:

答案 0 :(得分:3)

事实证明,默认情况下,AWS Lambda会在终止函数执行之前等待事件循环为空。这意味着即使您调用callback()函数,AWS Lambda也不会退出。要更改此行为,您需要将callbackWaitsForEmptyEventLoop设置为false。即使事件循环不为空,这也告诉AWS Lambda退出,在这种情况下,它是我们的数据库连接。

context.callbackWaitsForEmptyEventLoop = false;