Mic*_*ael 2 amazon-s3 aws-lambda
我是AWS Lambda的新手,我正在研究如何在nodejs中调用S3 API.我想阅读S3对象的内容,所以这是我的代码:
exports.handler = function (event, context) {
var AWS = require('aws-sdk');
var s3 = new AWS.S3();
s3.getObject({
Bucket: 'lambda-bucket',
Key: 'test.html'
}, function (err, data) {
console.log('this is happening!');
console.log(data);
});
context.done();
}
Run Code Online (Sandbox Code Playgroud)
我遵循API文档,但我甚至没有看到CloudWatch中的第一个日志.我也尝试过putObject
,似乎没有工作.我的运行时是nodejs4.3.希望我能在这里得到一些帮助.
谢谢.
我建议在尝试处理AWS Lambda之前了解NodeJS中异步调用的工作原理.在您context.done()
的呼叫s3.getObject()
完成之前,您在呼叫的代码中.这导致函数在S3调用完成之前终止.将context.done()
呼叫转移到getObject
回调中将解决此问题:
exports.handler = function (event, context) {
var AWS = require('aws-sdk');
var s3 = new AWS.S3();
s3.getObject({
Bucket: 'lambda-bucket',
Key: 'test.html'
}, function (err, data) {
console.log('this is happening!');
console.log(data);
// Now that the S3 call is complete,
// we can terminate the Lambda function execution
context.done();
});
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1079 次 |
最近记录: |