You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

函数界面截图:

Lambda函数界面

正确调试步骤:

  1. 准备本地调试环境

    • 确认Cloud9中已安装SAM CLI,终端执行 sam --version 验证
    • 进入项目根目录,执行 sam build 构建项目,确保依赖和代码打包完成
  2. 配置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": []
              }
          ]
      }
      
  3. 启动本地API模拟服务

    • 在终端执行 sam local start-api,启动后会显示本地服务地址(默认http://127.0.0.1:3000)
  4. 触发函数并调试

    • 打开Cloud9终端,执行 curl http://127.0.0.1:3000/hello,或直接在浏览器访问该地址
    • 此时调试器会命中你在lambda_handler中设置的断点,即可进行调试

替代调试方式(直接调用函数,不通过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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 13:10:22