【发布时间】:2019-01-19 01:51:16
【问题描述】:
我正在尝试从我的 node.js (8.10) lambda 函数中列出一个 S3 存储桶。
当我(在 Lambda 中)运行下面的函数时,我在日志中看到“检查点 1”和“检查点 2”,但我没有看到来自 listObjectsV2 调用的任何日志记录,既没有错误也没有数据。我的超时设置为 10 秒,我也没有看到任何超时日志条目。我想我可能会遗漏在 lambda 中使用异步函数的一些内容?
const AWS = require('aws-sdk');
const s3 = new AWS.S3({apiVersion: '2006-03-01'});
exports.handler = async (event, context) => {
// console.log('Received event:', JSON.stringify(event, null, 2));
var params = {
Bucket: 'bucket-name'
}
console.log("Checkpoint 1");
s3.listObjectsV2(params, function (err, data) {
if (err) {
console.log(err, err.stack);
} else {
console.log(data);
}
});
console.log("Checkpoint 2");
};
有人可以指出我在这里找到错误的正确方向吗?
【问题讨论】:
-
在打印列表之前,您的 Lambda 函数是否有可能超时? CloudWatch Logs 将显示超时。请注意,Lambda 默认执行超时为 3 秒。
-
我没有看到任何 CloudWatch 日志条目超时。我应该在上面指出,我也将超时设置为 10 秒。
-
你应该回报一个承诺,不是吗?
标签: node.js amazon-web-services amazon-s3 aws-lambda