Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – AWS Lambda copyObject“在完成请求之前退出流程”大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试复制上传到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();
    });

};

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

解决方法

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

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

谢谢

大佬总结

以上是大佬教程为你收集整理的node.js – AWS Lambda copyObject“在完成请求之前退出流程”全部内容,希望文章能够帮你解决node.js – AWS Lambda copyObject“在完成请求之前退出流程”所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: