python 在Lambda中容器化和部署的文件目录?

elcex8rz  于 2023-04-19  发布在  Python
关注(0)|答案(1)|浏览(107)

我有一个Python包目录,它看起来像这样:

我有一个使用AWS提供的基础镜像的Dockerfile:

COPY requirements.txt .
RUN pip install --upgrade pip
ENV LAMBDA_TASK_ROOT="/usr/lambda"
RUN pip install -r requirements.txt --target "${LAMBDA_TASK_ROOT}"
COPY src/b "${LAMBDA_TASK_ROOT}"

现在,当我使用上面的代码构建的镜像部署lambda时,我使用“b.handler.lambda_handler”作为我的CMD覆盖,我得到这个错误:

Unable to import module 'b': No module named 'b'

我已经尝试使用CMD覆盖“handler.lambda_handler”,但这给了我一个类似的错误。
如果我的代码有多个这样的文件,我可以不复制整个目录,然后调用我的处理程序吗?有人能告诉我正确的解决方案或文档吗?AWS似乎有一个文档,它只指导我完成1个文件的设置。
编辑1:当我在本地运行image时,我得到了这个:

PS C:\Windows\system32> docker run -p 9000:8080 3cdde6464b082779fec0f6c263b9052514886d4f90d0d0c1a6d8d40f459660c7
12 Apr 2023 23:10:34,654 [INFO] (rapid) exec '/var/runtime/bootstrap' (cwd=/var/task, handler=)
tp5buhyn

tp5buhyn1#

解决方案是从Dockerfile中删除以下行。

ENV LAMBDA_TASK_ROOT="/usr/lambda"

相关问题