将AWS Lambda与Redshift连接 - 60秒后超时

Kev*_*ith 7 amazon-web-services node.js amazon-redshift aws-lambda

我创建了一个AWS Lambda函数:

  • 通过JDBC URL登录Redshift
  • 运行查询

在本地,使用Node,我可以通过JDBC成功连接到Redshift实例,并执行查询.

var conString = "postgresql://USER_NAME:PASSWORD@JDBC_URL”;
var client = new pg.Client(conString);
client.connect(function(err) {   
  if(err) {?            
      console.log('could not connect to redshift', err);?          
  }  ?          
// omitted due to above error
Run Code Online (Sandbox Code Playgroud)

但是,当我在AWS Lambda上执行该功能时(它包含在异步#瀑布块中),AWS Cloudwatch日志告诉我,AWS Lambda函数在60秒后超时.

关于为什么我的功能无法连接的任何想法?

pig*_*box 2

我发现要么向所有来源公开您的 Redshift 安全组,要么不公开。因为 Lambda 函数不是在固定地址甚至固定 IP 地址范围上运行,这对用户完全透明(也称为无服务器)。

我昨天刚刚看到亚马逊宣布了新的 Lambda 功能来支持 VPC。我想如果我们可以在 VPC 中运行 Redshift 集群,就可以解决这个问题。