我正在将node-postgres客户端用于我的AWS Redshift数据库。
在本地,我可以在node
中运行以下代码,获取“>> connected”和“>>>成功查询的打印语句.jsonResult:”。
但是,当我在Amazon Lambda中运行此代码时,除了“尝试连接...”之外,我没有看到任何日志语句。
console.log("trying to connect...");
var r = pg.connect(conString, function(err, client) {
if(err) {
return console.log('>> could not connect to redshift', err);
}
console.log(">> connected");
client.query('SELECT * FROM my_table', function(err, result) {
if(err) {
return console.log('error running query', err);
}
var jsonResult = JSON.stringify( result );
console.log(">>> successful query. jsonResult: " + jsonResult);
client.end();
return jsonResult;
});
});
我很困惑,除了“>>尝试连接......”之外,没有打印声明可以显示在此代码中。
答案 0 :(得分:2)
您应该检查两件事
context.done()
的任何调用,因此很难知道您是否正确处理此问题。你在其他地方打电话给context.done()
吗?答案 1 :(得分:0)
您是否可能没有将Lambda附加到VPC?如果是这种情况,我建议将其连接到两个专用子网,并确保有一个可用于这些子网的NAT网关。您可以在本教程中找到更多信息:https://github.com/awslabs/aws-lambda-redshift-loader