Node.js AWS Lambda函数在不打印整个结果的情况下执行
我试图通过AWS Lambda(使用节点)读取AWS S3存储桶中所有文件的内容。我已经将S3键硬编码到一个数组中进行测试。但是,以下功能的结果只是打印部分内容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'
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会将响应或错误发送给调用程序
你的函数超时了吗?也许你需要增加它的超时来给它更多的时间?你的函数超时了吗?也许你需要增加它的超时时间来给它更多的时间?