我正在尝试创建一个连接到RedShift的Lambda函数:
var pg = require('pg');
var conString = 'postgresql://username:Password@JDBC-URL';
var client = new pg.Client(conString);
client.connect(function(err) { if(err) {
console.log('could not connect to redshift', err);
}
});
pgClient.end();
但我得到了这个例外:
Unable to import module 'index': Error
at Function.Module._resolve Filename (module.js:325:15)
at Function.Module._load (module.js:276:25)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (/var/task/index.js:1:72)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
有人可以帮我解决这个问题吗。
感谢。
答案 0 :(得分:2)
如果您的目标是将数据从AWS Lambda推送到Amazon Redshift,则可以使用 AWS Lambda Redshift Loader 。
答案 1 :(得分:1)
从Lambda将数据加载到Amazon Redshift的另一种成功方法可以是通过kinesis firehose [1],它可以在内部将数据保存在s3中,建议将数据加载到redshift而不是insert命令。[2]
数据流: Lambda&gt; Firehose(s3)&gt;红移。
为使用这种方式节省时间的人提供进一步的阅读建议(即使是故障排除指南,如果事先阅读,也可以节省大量时间): https://stackoverflow.com/a/34221861/2406687
脚注:
[1]“COPY命令是加载表格的最有效方法。您还可以使用INSERT命令向表中添加数据,尽管它比使用http://docs.aws.amazon.com/redshift/latest/dg/t_Loading_data.html上的COPY效率低得多。” / p>
[2] http://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html