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

无需SAM CLI,在VS Code本地调试容器化AWS Lambda(Python)

无需SAM CLI调试容器化AWS Lambda Python函数的方法

步骤1:修改Dockerfile添加调试配置

在你的Lambda容器镜像Dockerfile中,加入debugpy依赖安装,并调整启动命令以启用调试:

# 基于官方Lambda Python镜像构建
FROM public.ecr.aws/lambda/python:3.11

# 安装debugpy调试工具
RUN pip install debugpy -t /var/task

# 复制Lambda代码到容器指定目录
COPY app.py ${LAMBDA_TASK_ROOT}

# 修改启动命令:先启动debugpy监听端口,再加载Lambda运行时
CMD ["python", "-m", "debugpy", "--listen", "0.0.0.0:5678", "--wait-for-client", "-m", "awslambdaric", "app.handler"]

注意:将app.handler替换为你实际的Lambda处理程序路径(比如代码文件是lambda_function.py,处理函数是handler,则写lambda_function.handler)

步骤2:构建并运行调试容器

执行以下命令构建镜像并启动容器,同时映射Lambda调用端口和调试端口:

# 构建镜像
docker build -t lambda-debug-image .

# 启动容器:映射本地9000端口到容器8080(Lambda调用端口),本地5678端口到容器5678(调试端口)
docker run -p 9000:8080 -p 5678:5678 lambda-debug-image

步骤3:配置VS Code调试会话

打开VS Code的调试面板,创建launch.json文件,添加以下配置:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Attach to Lambda Container",
            "type": "python",
            "request": "attach",
            "connect": {
                "host": "localhost",
                "port": 5678
            },
            "pathMappings": [
                {
                    "localRoot": "${workspaceFolder}",
                    "remoteRoot": "/var/task"
                }
            ],
            "justMyCode": false
        }
    ]
}

说明:pathMappings确保本地代码目录与容器内Lambda代码目录/var/task对应,保证断点能正确映射;justMyCode设为false可调试依赖包代码(按需开启)

步骤4:启动调试并触发函数

  1. 在VS Code中给Lambda代码设置断点
  2. 启动调试会话(点击调试面板的启动按钮)
  3. 用以下命令触发本地Lambda函数,触发后代码会停在断点处:
curl -XPOST "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{"key": "value"}'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 20:21:42