2

我正在开发一个应用程序,我想从 AWS lambda 连接到 postgresql 数据库。我已将数据库设置为可公开访问的属性设置为 true。入站和出站策略是在此处输入图像描述

在此处输入图像描述

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

我收到以下超时错误错误 消息”:“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?

4

1 回答 1

0

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

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

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

于 2017-04-16T13:47:36.680 回答