我正在尝试复制上传到S3存储桶的文件以创建带时间戳的备份。 (' live'文件将定期覆盖以维护perma-link)
然而,AWScopyObject似乎没有执行。我收到以下错误
{
"errorMessage": "Process exited before completing request"
}
导致此错误的代码如下:
console.log('Loading function');
var AWS = require('aws-sdk');
var s3 = new AWS.S3();
exports.handler = function(event, context) {
var srcBucket = event.Records[0].s3.bucket.name;
var srcKey = event.Records[0].s3.object.key;
var dstKey = srcBucket+'/backup/'+ Date.now() + '-' +srcKey;
console.log(srcKey);
console.log(dstKey);
var copyParams = {
Bucket: srcBucket,
CopySource : srcBucket + '/' + srcKey,
Key: dstKey
};
s3.copyObject(
copyParams,
function (err, data) {
if (err) {
console.log("ERROR copyObject");
console.log(err);
}
else {
console.log('SUCCESS copyObject');
}
context.done();
});
};
在AWSCopyObject回调之前可能导致lambda退出的原因是什么?根据{{3}},此错误表明context.done()永远不会被命中。
答案 0 :(得分:5)
我遇到了类似的问题,似乎只有在我尝试使用AWS Lambda控制台进行测试时才会出现问题,但是当我尝试使用真正的存储桶执行测试(上传测试文件)并成功执行Lambda函数时。
尝试查看'日志输出'您将获得有关实际错误的详细信息。
由于