【问题标题】:Debug async waterfall AWS Lambda调试异步瀑布 AWS Lambda
【发布时间】:2020-10-13 09:40:40
【问题描述】:

我正在编写一个用于转换图像的 lambda,并为此使用 async.waterfall。 我很难调试 lambda,因为它似乎没有启动第二个函数转换。任何机构都可以帮助我进行调试。这实际上是一个非常基本的设置,但我不明白为什么它没有进入转换函数也没有抛出任何错误

    async.waterfall([
        function download(next) {
            
            s3.getObject({
                    Bucket: srcBucket,
                    Key: srcKey
                },
                next);
        },
        function transform(response, next) {
            console.log("transform", response);
            sharp(response.Body)
                .webp()
                .toBuffer(next);
        },
        function upload(data, info, next) {
            console.log("upload");
            s3.putObject({
                    Bucket: dstBucket,
                    Key: dstKey,
                    Body: data,
                },
                next);
        }
    ], function (err) {
        if (err) {
            console.error(
                'Unable to convert ' + srcBucket + '/' + srcKey +
                ' and upload to ' + dstBucket + '/' + dstKey +
                ' due to an error: ' + err
            );
        } else {
            console.log(
                'Successfully converted ' + srcBucket + '/' + srcKey +
                ' and uploaded to ' + dstBucket + '/' + dstKey
            );
        }
        callback(null, "message");
    });

【问题讨论】:

  • lambda函数是用SAM构建的吗?
  • 是的!这有什么不同吗?
  • 仅供参考,getObject 回调接收两个参数:errdata
  • 它是否真的执行了 getObject 调用(我看那里没有日志记录)?此 Lambda 函数的 CloudWatch Logs 是否显示任何错误? Lambda 函数是否超时(默认超时为 3 秒,可能不足以下载大文件)?

标签: node.js asynchronous aws-lambda


【解决方案1】:

如果您使用的是 AWS SAM,那么您可以在本地启动 lambda 环境。查看可用的可能选项here。在本地调用代码可以帮助您调试代码。

【讨论】:

  • 我以前做过。它的运行知道,但我不知道问题出在哪里,我没有更改代码????还是谢谢
猜你喜欢
  • 2023-03-15
  • 1970-01-01
  • 2021-12-30
  • 2018-11-13
  • 2020-09-06
  • 2015-07-18
  • 2017-03-02
  • 2015-04-28
  • 1970-01-01
相关资源
最近更新 更多