我有一个AWS Lambda函数,它使用Knex.js NPM模块连接到RDS实例。从数据库中获取数据并调用callback()
函数后,AWS Lambda将不会退出,也不会发回响应并将超时。
如果我console.log()
来自DB的结果我看到了数据,这意味着从DB中检索信息是成功的。
答案 0 :(得分:3)
事实证明,默认情况下,AWS Lambda会在终止函数执行之前等待事件循环为空。这意味着即使您调用callback()
函数,AWS Lambda也不会退出。要更改此行为,您需要将callbackWaitsForEmptyEventLoop
设置为false
。即使事件循环不为空,这也告诉AWS Lambda退出,在这种情况下,它是我们的数据库连接。
context.callbackWaitsForEmptyEventLoop = false;