gpt4 book ai didi

amazon-s3 - 无法在 Lambda (nodejs) 中使用 s3 函数

转载 作者:行者123 更新时间:2023-12-03 13:38:13 26 4
gpt4 key购买 nike

我是 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();
}

我遵循了 API 文档,但我什至没有看到 CloudWatch 中的第一个日志。我也尝试过 putObject,但似乎效果不佳。我的运行时是nodejs4.3。希望我能在这里得到一些帮助。

谢谢。

最佳答案

我建议在尝试解决 AWS Lambda 之前先了解异步调用在 NodeJS 中的工作原理。在您的代码中,您在对 s3.getObject() 的调用完成之前调用 context.done() 。这会导致该函数在 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();
});
}

关于amazon-s3 - 无法在 Lambda (nodejs) 中使用 s3 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36530675/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com