Node.js aws lambda函数查询数据库超时

Node.js aws lambda函数查询数据库超时,node.js,postgresql,amazon-web-services,lambda,Node.js,Postgresql,Amazon Web Services,Lambda,尝试使用Lambda函数连接PostgreSQL数据库,两者都驻留在AWS中,但似乎无法建立连接;下面是my node(6.10)函数的一个片段: exports.handler = (event, context, callback) => { var pg = require("pg"); const connectionStr = "pg://user:pwd@host:5432/dbname"; pg.connect(connectionStr, funct

尝试使用Lambda函数连接PostgreSQL数据库,两者都驻留在AWS中,但似乎无法建立连接;下面是my node(6.10)函数的一个片段:

exports.handler = (event, context, callback) => {
    var pg = require("pg");
    const connectionStr = "pg://user:pwd@host:5432/dbname";
    pg.connect(connectionStr, function(err, client){
        if(err) {
            console.log("A connection error occurred");
        } else {
            console.log("Connection established");
            var query = client.query("select * from makes", function(err, data) {
                if(err) {
                    console.log("An error occurred");
                    console.log(err);
                } else {
                    console.log("Succeed");
                    console.log(data);
                }
            });

            query.on("end", function(){
                console.log("Close");
            })
       }     
   })
};
我试过几件事:

1) 在本地机器上测试,工作良好

2) 已经设置了lambda功能的VPC和子网,与我的数据库实例仪表板上显示的相同

3) 试图将超时时间增加到20秒零1分钟,但仍然超时

4) 检查了日志文件,该文件仅显示以下内容:注意:没有消息显示连接失败或成功:

2017-06-15T01:06:26.173Z ce971015-5166-11e7-b733-0fe749dc9c4a任务 20.00秒后超时


有什么问题吗?有人有什么想法吗?提前感谢。

数据库的安全组需要允许Lambda关联的安全组进行访问。@Michael sqlbot感谢您的回复。听起来像是我错过了什么。你有关于如何做的参考资料吗?而且你从不释放连接,这将导致立即的连接泄漏,你的代码将冻结。如果您想避免干扰连接,请改用。@vitaly-t您好,谢谢您的回复。我正在尝试使用
pgpromise
模块;但是lambda仍然超时,我可以在postgresql事件中看到连接日志文件,这意味着应该已经建立了连接。如何使用pg promise释放连接?我尝试了
db.query.then.catch
模式。这会释放连接吗?抱歉,javascript还是新手。