小编tom*_*tom的帖子

使用 Python 为 AWS Lambda 构建 Docker 容器时导入模块错误

我正在尝试构建一个在 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 …

python amazon-web-services docker aws-lambda

6
推荐指数
1
解决办法
2467
查看次数

标签 统计

amazon-web-services ×1

aws-lambda ×1

docker ×1

python ×1