开放的mongodb连接阻止了AWS Lambda回调?

时间:2017-11-10 23:07:14

标签: mongodb lambda aws-lambda

我已经设置了一个AWS lambda来为MongoDB做一些数据保存。我想重用连接,所以每次调用lambda时都不必创建新连接。但是如果我打开db连接,Lambda处理程序的回调就不起作用了!

有什么我做错了创造这种行为吗?这是我的代码:

var MongoClient = require('mongodb').MongoClient

exports.handler = (event, context, callback) => {
    MongoClient.connect(process.env.MONGOURL, function (err, database) {
        //database.close();
        callback(null, "Successful db connection")
    });
}

1 个答案:

答案 0 :(得分:3)

这是因为未设置context.callbackWaitsForEmptyEventLoop = false。如果保留默认值true,则回调不会导致Lambda返回响应,因为数据库连接使事件循环保持为空。

http://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-context.html