【发布时间】:2023-03-09 07:29:01
【问题描述】:
我正在尝试从我的 nodejs 代码连接到 redshift,以运行从 S3 复制到 redshift 的代码。 我使用下面的代码为此使用 node-redshift 包。
var Redshift = require('node-redshift');
var client = {
user: 'awsuser',
database: 'dev',
password: 'zxxxx',
port: '5439',
host: 'redshift-cluster-1.xxxxxxxxxx.us-east-1.redshift.amazonaws.com',
};
var redshiftClient = new Redshift(client);
var pg_query = "copy test1 from 's3://aws-bucket/" + file_name + "ACCESS_KEY_ID 'xxxxxxx' SECRET_ACCESS_KEY 'xxxxxxxxxx';";
redshiftClient.query(pg_query, {raw: true}, function (err1, pgres) {
if (err1) {
console.log('error here');
console.error(err1);
} else {
//upload successful
console.log('success');
}
});
}
});
我也尝试过使用显式连接,但无论如何我都会收到如下超时错误 错误:错误:连接 ETIMEDOUT XXX.XX.XX.XX:5439
redshift 集群被分配给一个角色以获得 S3 完全访问权限,并且还分配了默认安全组。
我错过了什么吗?
【问题讨论】: