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

如何在本地调试基于Python的AWS Amplify Lambda函数

本地逐行调试AWS Amplify Python Lambda函数的方案

步骤1:确认基础环境

  • 确保VS Code已安装Python官方插件
  • 本地Amplify项目已完成初始化,Lambda函数代码位于amplify/backend/function/[你的函数名]/src目录下
  • 本地Python环境版本与Lambda运行时一致(比如Python 3.9/3.10,匹配Amplify配置的Lambda runtime)

步骤2:配置VS Code调试文件

打开VS Code调试面板(Ctrl+Shift+D),点击「创建launch.json文件」选择Python环境后,替换为以下配置:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Lambda 本地调试",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/amplify/backend/function/YourFunctionName/src/app.py",
            "env": {
                "AWS_REGION": "us-east-1",
                "AMPLIFY_ENV_NAME": "dev",
                "FUNCTION_NAME": "YourFunctionName"
            },
            "args": ["--event", "${workspaceFolder}/amplify/backend/function/YourFunctionName/src/event.json"],
            "console": "integratedTerminal",
            "justMyCode": true
        }
    ]
}
  • 替换YourFunctionName为实际的Lambda函数名
  • env中可补充Amplify或Lambda所需的其他环境变量,比如AMPLIFY_PROJECT_NAME

步骤3:准备测试事件

在Lambda函数的src目录下创建event.json,模拟触发Lambda的事件(比如API Gateway请求、S3事件)。示例API Gateway事件:

{
    "httpMethod": "GET",
    "path": "/api/test",
    "queryStringParameters": {
        "userId": "12345"
    },
    "headers": {
        "Content-Type": "application/json"
    }
}

步骤4:调整Lambda函数代码

在函数入口文件(如app.py)末尾添加本地运行入口,直接调用handler函数:

import json

def handler(event, context):
    # 你的Lambda业务代码
    return {
        "statusCode": 200,
        "body": json.dumps({"message": "Success"})
    }

# 本地调试入口
if __name__ == "__main__":
    with open("event.json", "r") as f:
        test_event = json.load(f)
    # 简单模拟上下文,复杂场景可使用lambda-local库生成
    test_context = None
    result = handler(test_event, test_context)
    print("Lambda返回结果:", json.dumps(result, indent=2))

步骤5:启动调试

  1. 在需要调试的代码行左侧点击添加断点(红色圆点)
  2. 点击调试面板的绿色启动按钮,程序会停在断点处
  3. 使用快捷键控制调试流程:
    • F10:逐行执行(跳过函数调用)
    • F11:步入函数内部
    • Shift+F11:步出当前函数
    • F5:继续执行到下一个断点

注意事项

  • 如果函数依赖Amplify其他资源(如DynamoDB、Cognito),先运行amplify mock storage或amplify mock auth启动本地模拟服务
  • 函数依赖的第三方包(如boto3、requests)需安装到本地:进入src目录执行pip install -t . [包名],确保依赖与Lambda运行时一致
  • 调试时若遇权限问题,检查环境变量配置是否正确,或模拟Lambda的IAM权限

内容的提问来源于stack exchange,提问作者Alvaro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 08:08:15