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

AWS Lambda Docker容器报错fork/exec:文件或目录不存在

问题分析与修复方案

核心问题总结

你遇到的fork/exec ${output_path}/backup_manager.handler: no such file or directory错误,主要由三个原因导致:

  1. Docker CMD格式错误:使用JSON数组格式的CMD时,Shell不会解析环境变量/参数变量,${output_path}被当作字面量路径,而非实际目录。
  2. 关键文件未复制:Dockerfile里只复制了requirements.txt和.yml文件,没有把核心的backup_manager.py拷贝到容器中。
  3. 缺少Lambda运行时接口客户端:Ubuntu基础镜像没有集成Lambda Runtime Interface Client(RIC),Lambda无法正确触发Python handler函数。

具体修复步骤

1. 复制backup_manager.py到容器

在COPY步骤中添加对核心脚本的复制:

# copy files
ARG output_path=${LAMBDA_TASK_ROOT}/mongodb_backups
RUN mkdir $output_path
COPY requirements.txt *.yml backup_manager.py $output_path/

2. 修复CMD命令

有两种方式解决变量解析问题,推荐配合RIC使用规范写法:

  • 方式一:使用Shell格式CMD(让Shell解析变量)
CMD ["sh", "-c", "python3 -m awslambdaric ${output_path}/backup_manager.handler"]
  • 方式二:直接使用绝对路径(避免变量解析问题)
    Lambda默认LAMBDA_TASK_ROOT为/var/task,可直接写死路径:
CMD ["python3", "-m", "awslambdaric", "/var/task/mongodb_backups/backup_manager.handler"]

3. 安装Lambda Runtime Interface Client

Lambda需要RIC来和容器内代码交互,需在requirements.txt中添加依赖:

awslambdaric

然后在Dockerfile中执行依赖安装(已有的pip安装步骤会自动处理)。

4. 可选优化:使用官方Lambda Python基础镜像

如果不想手动配置Ubuntu环境,推荐使用AWS官方Lambda Python镜像,自带RIC和标准运行时,简化Dockerfile:

FROM public.ecr.aws/lambda/python:3.11-x86_64

# 设置工作目录
WORKDIR ${LAMBDA_TASK_ROOT}/mongodb_backups

# 复制依赖文件和代码
COPY requirements.txt backup_manager.py *.yml ./

# 安装依赖
RUN pip install --upgrade pip && pip install -r requirements.txt

# 下载MongoDB工具
ARG archive=mongodb-database-tools-amazon2-x86_64-100.9.1
RUN wget -P ${LAMBDA_TASK_ROOT}/ https://fastdl.mongodb.org/tools/db/"${archive}.tgz" && \
    tar -zxvf ${LAMBDA_TASK_ROOT}/"${archive}.tgz" && \
    cp ${LAMBDA_TASK_ROOT}/$archive/bin/* ${LAMBDA_TASK_ROOT}/usr/local/bin/

# 设置CMD调用RIC
CMD ["backup_manager.handler"]

验证步骤

修复后重新构建镜像:

  1. 本地测试:运行docker run -p 9000:8080 <镜像名>,再用curl -XPOST "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{}'测试handler是否正常触发。
  2. 部署到Lambda后再次测试,确认错误消失。

内容的提问来源于stack exchange,提问作者André Lourenço

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 12:56:12