本地AWS Step Functions创建状态机遇PathNotFoundException求助
核心原因
你的错误本质是请求发错了服务端点:创建状态机的命令中,--endpoint-url指向了本地Lambda的端口(3001),但Step Functions Local有自己独立的运行端口(默认是8083)。把Step Functions的API请求发给Lambda服务,自然会因为路径不匹配返回PathNotFoundException,同时Lambda终端收到不匹配的根路径请求,返回404。
排查与修复步骤
确认Step Functions Local的运行端口
Step Functions Local默认启动端口为8083,如果你启动时自定义了端口(比如用-p参数指定),请记准对应的端口号。修正创建状态机的命令
将命令中的--endpoint-url改为Step Functions Local的端口,示例:aws stepfunctions --endpoint-url "http://127.0.0.1:8083" create-state-machine --definition file://state_machine.json --name "TestLambda" --role-arn "arn:aws:iam::123456789012:role/DummyRole"验证Step Functions配置文件中的Lambda端点
检查sf-setting-local.txt里的LAMBDA_ENDPOINT=http://127.0.0.1:3001是否正确——这个是Step Functions用来调用本地Lambda的地址,当前配置没问题,保持即可。核对状态机定义的Lambda ARN
确保状态机JSON中的ARNarn:aws:lambda:us-east-1:123456789012:function:TestLambda,与SAM模板的函数名、配置文件的AWS_ACCOUNT_ID、AWS_DEFAULT_REGION完全一致,当前配置匹配度没问题。重启服务重新测试
确保Step Functions Local和本地Lambda服务都正常运行,执行修正后的命令创建状态机,再测试状态机执行流程。
内容的提问来源于stack exchange,提问作者wltz

