我正在尝试构建一个在 AWS Lambda 上运行 Python 代码的 Docker 容器。构建工作正常,但是当我测试我的代码时,出现以下错误:
{"errorMessage": "Unable to import module 'function': No module named 'utils'", "errorType": "Runtime.ImportModuleError", "stackTrace": []}
Run Code Online (Sandbox Code Playgroud)
我的文件夹中基本上有两个 python 脚本,function.py 和 utils.py,我从 utils.py 导入一些函数并在 function.py 中使用它们。
在本地,一切正常,但是当我构建容器并使用以下curl命令对其进行测试时,出现上述错误。测试curl命令:
curl --request POST \
--url http://localhost:9000/2015-03-31/functions/function/invocations \
--header 'Content-Type: application/json' \
--data '{"Input": 4}'
Run Code Online (Sandbox Code Playgroud)
这是我的 dockerfile:
FROM public.ecr.aws/lambda/python:3.7
WORKDIR /
COPY . .
COPY function.py ${LAMBDA_TASK_ROOT}
COPY requirements.txt .
RUN pip3 install -r requirements.txt --target "${LAMBDA_TASK_ROOT}"
CMD [ "function.lambda_handler" ]
Run Code Online (Sandbox Code Playgroud)
我在相关的Stackoverflow问题中读到的是尝试以另一种方式从utils.py导入函数,我尝试更改为from utils import *,from .utils …