node.js - 调试异步瀑布 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");
});
解决方案
如果您使用的是 AWS SAM,那么您可以在本地启动 lambda 环境。查看此处可用的可能选项。在本地调用代码可以帮助您调试代码。
推荐阅读
- matlab - Simulink 中的免费倒计时计数器
- android - OnClick 将错误的位置和数据返回到 listvew 上的过滤文本
- java - 如何通过 java 代码使用我的 sim 无线发送消息?
- javascript - React js -[Violation] 向阻止滚动的“鼠标滚轮”事件添加了非被动事件侦听器
- ionic-framework - 离子 3 在平台文件夹中缺少离子启动器文件夹
- android - 如何为已发布的 Google Play 商店应用程序重新指定用于 Firebase 云功能的 nodemailer 凭据?
- sql - 如何将 SQL Server 中特定列的时间格式从 hhmmss 更改为 hh:mm:ss
- unit-testing - 福利单元测试研究
- dot - PlantUML 中侧面的 2 个组件
- date - 如何在 BigQuery 中将多种字符串格式转换为一种日期格式?