use*_*396 5 amazon-s3 amazon-web-services node.js aws-lambda
我正在尝试复制上传到S3存储桶的文件以创建带时间戳的备份.('live'文件会定期覆盖以维护perma-link)
但是,AWScopyObject似乎没有执行.我收到以下错误
{
"errorMessage": "Process exited before completing request"
}
Run Code Online (Sandbox Code Playgroud)
导致此错误的代码如下;
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();
});
};
Run Code Online (Sandbox Code Playgroud)
什么可能导致lambda在AWSCopyObject回调之前退出?根据https://aws.amazon.com/blogs/compute/container-reuse-in-lambda/,此错误表明context.done()永远不会被命中.
我遇到了类似的问题,似乎只有在我尝试使用AWS Lambda控制台进行测试时才会出现问题,但是当我尝试使用真正的存储桶执行测试(上传测试文件)并成功执行Lambda函数时.
尝试查看"日志输出",您将获得有关实际错误的更多详细信息.
谢谢
| 归档时间: |
|
| 查看次数: |
8209 次 |
| 最近记录: |