Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js AWS Lambda函数在不打印整个结果的情况下执行_Node.js_Amazon Web Services_Amazon S3_Aws Lambda - Fatal编程技术网

Node.js AWS Lambda函数在不打印整个结果的情况下执行

Node.js AWS Lambda函数在不打印整个结果的情况下执行,node.js,amazon-web-services,amazon-s3,aws-lambda,Node.js,Amazon Web Services,Amazon S3,Aws Lambda,我试图通过AWS Lambda(使用节点)读取AWS S3存储桶中所有文件的内容。我已经将S3键硬编码到一个数组中进行测试。但是,以下功能的结果只是打印部分内容 var AWS = require('aws-sdk'); var s3 = new AWS.S3(); exports.handler = async (event, context,callback) => { var AllKey=['Key1, 'Key2'

我试图通过AWS Lambda(使用节点)读取AWS S3存储桶中所有文件的内容。我已经将S3键硬编码到一个数组中进行测试。但是,以下功能的结果只是打印部分内容

    var AWS = require('aws-sdk');
    var s3 = new AWS.S3();
    
    exports.handler = async  (event, context,callback) => {
       
       var AllKey=['Key1, 'Key2']
       
       AllKey.forEach(function(element) {
       (async () => {
      try {
        const file = await s3
          .getObject({ Bucket: 'mb2logs', Key: element })
          .promise();
        console.log(file.Body.toString('utf-8'));
      } catch (err) {
        console.log(err);
      }
    })();
        
       })
       

callback(null,{});
};

在我看来,lambda的执行可能会在所有异步操作完成之前终止。您应该从处理程序返回一个承诺,以确保异步操作将完成。看

对于异步处理程序,可以使用return和throw分别发送响应或错误。函数必须使用async关键字才能使用这些方法返回响应或错误

如果您的代码执行异步任务,请返回一个承诺以确保它完成运行。当您解析或拒绝承诺时,Lambda会将响应或错误发送给调用程序


在我看来,lambda的执行可能会在所有异步操作完成之前终止。您应该从处理程序返回一个承诺,以确保异步操作将完成。看

对于异步处理程序,可以使用return和throw分别发送响应或错误。函数必须使用async关键字才能使用这些方法返回响应或错误

如果您的代码执行异步任务,请返回一个承诺以确保它完成运行。当您解析或拒绝承诺时,Lambda会将响应或错误发送给调用程序


你的函数超时了吗?也许你需要增加它的超时来给它更多的时间?你的函数超时了吗?也许你需要增加它的超时时间来给它更多的时间?