AWS Step Function调用Lambda遇Runtime.HandlerNotFound错误求助
解决AWS Step Functions调用Lambda时的Runtime.HandlerNotFound错误
错误核心
Runtime.HandlerNotFound 提示 index.handler is undefined or not exported,本质是Lambda无法找到配置的处理函数入口,以下针对你怀疑的几个方向逐一排查解决:
Step Functions配置排查
Step Functions调用Lambda时,不需要额外配置处理程序路径,只需确保Step Functions的执行角色拥有lambda:InvokeFunction权限,能触发目标Lambda即可。真正的问题核心在Lambda本身的配置和代码,而非Step Functions的步骤配置。Lambda处理程序配置与代码导出检查
- 打开Lambda控制台,确认"处理程序"字段是否为
index.handler:- 如果你的入口文件不是
index.js/ts(比如是app.js),或者导出的函数名不是handler(比如是main),需将处理程序改为对应格式,例如app.main。
- 如果你的入口文件不是
- 检查代码是否正确导出
handler函数:
若使用TypeScript,需确保编译后的JS文件中存在正确的// 正确导出示例(Node.js) exports.handler = async (event) => { // 函数逻辑 return { statusCode: 200, body: JSON.stringify('执行成功') }; };handler导出,Lambda实际执行的是编译后的产物。
- 打开Lambda控制台,确认"处理程序"字段是否为
Zip包结构验证
确保打包后的Zip包根目录下直接包含入口文件(如index.js),不要将文件嵌套在子文件夹中。例如,若项目结构为src/index.js,打包时需将src目录下的文件直接放到Zip根目录,而非把整个src文件夹打包进去。权限问题澄清
该错误本身与权限无关(权限问题通常会报AccessDenied类错误),但可额外确认:- Step Functions执行角色是否具备调用目标Lambda的
lambda:InvokeFunction权限; - Lambda执行角色是否拥有业务逻辑所需的权限(但这不会导致处理程序找不到的错误)。
- Step Functions执行角色是否具备调用目标Lambda的
最后操作建议
重新打包代码(确保包含所有依赖和入口文件),重新部署Lambda函数后,再测试Step Functions的执行。
内容的提问来源于stack exchange,提问作者user16394154
相关产品推荐
相关产品推荐

