首页 > 解决方案 > 调试异步瀑布 AWS Lambda

问题描述

我正在编写一个用于转换图像的 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");
    });

标签: node.jsasynchronousaws-lambda

解决方案


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


推荐阅读