AWS CDK出现Runtime.MalformedHandlerName & BadHandler错误求助
问题分析与解决方案
核心问题1:当前函数代码不符合Lambda运行时要求
你的Node.js Lambda函数是async类型,但未返回任何值,Lambda运行时会等待Promise完成,可函数始终没有返回结果,最终会触发调用错误(比如超时或返回未定义响应)。
核心问题2:修改代码后响应不变
大概率是你没有正确部署更新后的代码,Lambda仍在执行旧版本的函数逻辑,所以无论修改什么内容,调用结果都不会变化。
修复步骤
修正函数代码,添加合法返回值
Lambda的async handler必须返回符合格式的响应对象,示例代码:exports.handler = async function(event) { console.log('Success'); // 返回标准HTTP响应格式(适配API Gateway等调用场景) return { statusCode: 200, body: JSON.stringify({ message: '执行成功' }) }; // 如果是纯事件触发(无需返回值),至少返回一个空对象 // return {}; };确保代码部署成功
- 控制台操作:编辑代码后,务必点击右上角的「部署」按钮,等待页面提示部署完成后再测试调用。
- CLI/自动化工具部署:重新执行部署命令(如
aws lambda update-function-code),确认命令执行成功且新代码已上传。
验证代码是否生效
调用函数后,查看CloudWatch日志:如果日志里出现最新的console.log内容,说明代码已更新;如果还是旧日志,说明部署未成功,检查部署流程。
内容的提问来源于stack exchange,提问作者joey visbeen
相关产品推荐
相关产品推荐

