【问题标题】:AWS Lambda copyObject "Process exited before completing request"AWS Lambda copyObject“进程在完成请求之前退出”
【发布时间】:2015-08-03 07:47:57
【问题描述】:

我正在尝试复制上传到 S3 存储桶的文件以创建带时间戳的备份。 (“实时”文件将定期覆盖以维护永久链接)

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

};

什么可能导致 lambda 在 AWSCopyObject 回调之前退出?根据https://aws.amazon.com/blogs/compute/container-reuse-in-lambda/,此错误表明 context.done() 永远不会被命中。

【问题讨论】:

  • 也许 copyObject 花费的时间比预期的要长? lambda的时间限制是多少?从开发环境运行代码时,执行需要多长时间?
  • 你解决了吗?我也有类似情况,打算试试java
  • @st78 你有没有解决过这个问题?我也有同样的问题。

标签: node.js amazon-web-services amazon-s3 aws-lambda


【解决方案1】:

我遇到了类似的问题,似乎只有当我尝试使用 AWS Lambda 控制台进行测试时才遇到问题,但是当我尝试使用真实存储桶执行测试(上传测试文件)并且 Lambda 函数成功执行时。

尝试查看“日志输出”,您将获得有关实际错误的更多详细信息。

谢谢

【讨论】:

  • 碰巧这或多或少是我遇到的问题。 AWS Lambda 控制台没有充分模拟文件上传以进行测试,需要一个实时文件才能正确调用。
猜你喜欢
  • 2018-03-25
  • 1970-01-01
  • 1970-01-01
  • 2017-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多