Tôi đang cố sao chép các tệp được tải lên một thùng S3 để tạo các bản sao lưu được định thời gian. (tệp 'trực tiếp' sẽ ghi đè định kỳ để duy trì liên kết perma)AWS Lambda copyObject "Quy trình đã thoát trước khi hoàn thành yêu cầu"
AWScopyObject, tuy nhiên, dường như không thực thi. Tôi gặp phải lỗi sau đây
{
"errorMessage": "Process exited before completing request"
}
Mã gây ra lỗi này như sau;
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();
});
};
Điều gì có thể khiến lambda thoát ra trước cuộc gọi lại AWSCopyObject? Theo https://aws.amazon.com/blogs/compute/container-reuse-in-lambda/ lỗi này cho thấy context.done() không bao giờ được nhấn.
Có lẽ bản sao chép mất nhiều thời gian hơn dự kiến? Giới hạn thời gian trên lambda là bao nhiêu? Khi bạn chạy mã từ môi trường dev của bạn, mất bao lâu để thực thi? – Max
Bạn đã nhận được giải quyết chưa? Tôi có trường hợp tương tự, sẽ thử java – st78
@ st78 Bạn đã bao giờ giải quyết vấn đề này về phía bạn chưa? Tôi đang gặp vấn đề tương tự. – SMT