我正在开发一个应用程序,我希望从AWS lambda连接到postgresql数据库。我已将Publicly Accessible属性设置为true设置数据库。入站和出站策略为
我可以通过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?
答案 0 :(得分:0)
您是否尝试从数据库中记录某些内容以确认它无法访问它?
对我来说,问题似乎是你没有结束连接。如果你有开放的数据库连接,回调不会终止它,它会一直运行直到它超时。
尝试使用client.end()来终止连接。