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

为何在AWS Lambda Docker容器中无法执行`from algorithm import foo`?

问题:Docker打包AWS Lambda镜像后无法导入自定义模块algorithm

我按照AWS官方教程构建适用于Python 3.11的AWS Lambda函数Docker镜像。本地运行python lambda_function.py时,lambda_function.py第一行的from algorithm import foo as data_processor可正常执行,但打包为Docker镜像运行时,出现错误提示:Unable to import module 'lambda_function': No module named 'algorithm'。

本地测试Docker镜像的步骤:

# 启动Docker容器
docker run --platform linux/amd64 -p 9000:8080 my-image:latest

# 打开另一个终端,触发Lambda函数
curl "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{}'

我的目录结构:

.
├── Dockerfile
├── algorithm
│   ├── __init__.py
│   └── foo.py
├── lambda_function.py
└── requirements.txt

Dockerfile内容:

FROM public.ecr.aws/lambda/python:3.11.2024.08.09.13

# 复制requirements.txt
COPY requirements.txt ${LAMBDA_TASK_ROOT}

RUN pip install --upgrade pip

# 安装指定包
RUN pip install -r requirements.txt

# 复制函数代码
COPY lambda_function.py ${LAMBDA_TASK_ROOT}
COPY algorithm/ ${LAMBDA_TASK_ROOT}

# 设置CMD指向lambda_handler(也可在Dockerfile外通过参数覆盖)
CMD [ "lambda_function.lambda_handler" ]

我已确认${LAMBDA_TASK_ROOT}等于/var/task,且sys.path包含'/var/task'。尝试过类似问题的解决方案但无效,请问为何在Docker容器内的lambda_function.py中无法执行from algorithm import foo as data_processor?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 12:41:01