无法从 AWS lambda 连接 AWS redshift
Posted
技术标签:
【中文标题】无法从 AWS lambda 连接 AWS redshift【英文标题】:Unable to connect AWS redshift from AWS lambda 【发布时间】:2021-04-27 06:38:00 【问题描述】:我正在尝试从我的 AWS Lambda 函数连接到 AWS Redshift:
var Redshift = require('node-redshift');
const getLOOKUP_LOV_JSON= async ()=>
try
var client =
host: "redshift-host",
user: 'admin',
database: 'dev',
password: 'password',
port: "5439"
;
return new Promise(function (resolve, reject)
var redshiftClient = new Redshift(client, rawConnection: true);
console.log("before Connect");
redshiftClient.connect(function(err)
console.log("after connect");
if(err)
console.log(err);
throw err;
else
redshiftClient.query('SELECT * FROM "Persons"', raw: true, function(err, data)
if(err)
console.log(err);
throw err;
else
console.log(data);
redshiftClient.close();
);
);
我的代码执行到连接方法之前,我的记录器中没有任何问题,它只打印“连接之前”。
【问题讨论】:
这能回答你的问题吗? Connect to Redshift from AWS Lambda 【参考方案1】:AWS Lambda 函数需要配置为连接到与 Amazon Redshift 集群位于同一 VPC 中的私有子网。
你会遇到超时问题。要解决此问题,您需要将 lambda 函数放入 VPC 你可以按照教程https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html
然后在Redshift的安全组中为5439端口的lambda函数安全组添加入站规则 https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-security-groups.html
【讨论】:
以上是关于无法从 AWS lambda 连接 AWS redshift的主要内容,如果未能解决你的问题,请参考以下文章
AWS Lambda 无法连接到 RDS 实例,但我可以在本地连接?
无法从 AWS Lambda 连接到 AWS RDS MySql DB。 ClassNotFoundException:com.mysql.jdbc
从 AWS API Gateway Web 界面配置 AWS Lambda 时无法选择/查看 Lambda 函数