无法从AWS lambda连接到AWS RDS postgresql数据库

时间:2017-04-15 11:46:51

标签: amazon-web-services aws-lambda amazon-rds aws-vpc

我正在开发一个应用程序,我希望从AWS lambda连接到postgresql数据库。我已将Publicly Accessible属性设置为true设置数据库。入站和出站策略为enter image description here

enter image description here

我可以通过pgAdmin客户端访问数据库,但无法通过aws lambda访问数据库。我还将AWSRDSFULLACCESS策略与lambda角色相关联,并将vpc,子网和安全组信息添加到高级设置部分。

我收到了超时错误 errorMessage“:”2017-04-15T11:26:05.163Z 4ac2cf66-21ce-11e7-a6da-a7d26945c336 任务在9.00秒后超时“

我用来连接RDS的Node.js代码是

var pg = require("pg");
exports.handler = (event, context, callback) => {
    // TODO implement
    const connectionStr = "pg://username:password@hostendpoint:5432/database name";
  var client = new pg.Client(connectionStr);
  client.connect(function(err){
    if(err) {
      callback(err)
    }
    callback(null, 'Connection established');
  });
};

如何从AWS Lambda访问RDS?

1 个答案:

答案 0 :(得分:0)

您是否尝试从数据库中记录某些内容以确认它无法访问它?

对我来说,问题似乎是你没有结束连接。如果你有开放的数据库连接,回调不会终止它,它会一直运行直到它超时。

尝试使用client.end()来终止连接。