【发布时间】:2021-11-03 22:44:35
【问题描述】:
我在本地主机上进行了测试,然后在 s3 上进行了检查,发现创建了一个新文件。 但是在Lambda上测试的时候,虽然没有报错,但是S3上没有文件。 s3.upload(params).promise() 的日志也不显示。
var fs = require('fs');
var AWS = require('aws-sdk');
exports.handler = async (event, context, callback) => {
context.callbackWaitsForEmptyEventLoop = false
try {
AWS.config.update({
accessKeyId: accessKeyId,
secretAccessKey: secretAccessKey
});
var s3 = new AWS.S3();
var path = 'myfile.txt';
var file_buffer = fs.readFileSync(path);
console.log(file_buffer);
var params = {
Bucket: 'bucket-dev',
Key: '2222.txt',
Body: file_buffer
};
console.log("1111");
s3.upload(params).promise()
.then(function(data) {
console.log("Successfully uploaded to");
callback(null, "All Good");
})
.catch(function(err) {
console.error(err, err.stack);
callback(err);
});
console.log("2222");
return context.logStreamName
} catch (err) {
console.log(err);
callback(err);
}
}
谢谢
【问题讨论】:
-
console.log(file_buffer);是否在 CloudWatch 日志中提供任何打印输出? -
不要将
async形式的 lambda 处理程序与callback混合匹配! -
@Marcin CloudWatch 日志,它正在记录结果
。我认为这不是问题
标签: node.js amazon-web-services amazon-s3 aws-lambda