如何在Cloud9中调试Lambda函数?解决调试启动但函数未触发问题
在Cloud9中调试SAM Lambda函数的正确方式
你的应用配置(template.yaml):
Resources: HelloWorldFunction: Type: AWS::Serverless::Function Properties: CodeUri: hello_world/ Handler: app.lambda_handler Runtime: python3.7 Events: HelloWorld: Type: Api Properties: Path: /hello Method: get
函数界面截图:

正确调试步骤:
准备本地调试环境
- 确认Cloud9中已安装SAM CLI,终端执行
sam --version验证 - 进入项目根目录,执行
sam build构建项目,确保依赖和代码打包完成
- 确认Cloud9中已安装SAM CLI,终端执行
配置Cloud9调试器
- 点击Cloud9右上角调试按钮,选择「Add Configuration」
- 选择「AWS Lambda」模板生成
launch.json,修改关键配置:{ "version": "0.2.0", "configurations": [ { "name": "Debug SAM Lambda", "type": "python", "request": "launch", "program": "${workspaceFolder}/hello_world/app.py", "handler": "app.lambda_handler", "env": { "AWS_SAM_LOCAL": "true" }, "args": [] } ] }
启动本地API模拟服务
- 在终端执行
sam local start-api,启动后会显示本地服务地址(默认http://127.0.0.1:3000)
- 在终端执行
触发函数并调试
- 打开Cloud9终端,执行
curl http://127.0.0.1:3000/hello,或直接在浏览器访问该地址 - 此时调试器会命中你在
lambda_handler中设置的断点,即可进行调试
- 打开Cloud9终端,执行
替代调试方式(直接调用函数,不通过API)
- 准备测试事件文件
event.json,示例内容:{ "queryStringParameters": { "name": "test" } } - 终端执行
sam local invoke HelloWorldFunction -e event.json,同时确保调试器处于启动状态,即可触发断点
排查要点
- 确认断点已正确设置(代码行左侧显示红色圆点)
- 检查
launch.json中program和handler路径与template配置一致 - 确保
sam build无报错,依赖包已正确安装 - 若用API触发,确认
sam local start-api服务正常运行
内容的提问来源于stack exchange,提问作者hal
相关产品推荐
相关产品推荐

