【发布时间】:2021-05-28 13:52:31
【问题描述】:
我正在尝试使用 Pillow 包运行 aws lambda 函数,但出现导入错误。这个错误就像一个标准错误(here 和here)。 我从这些线程中了解到的是:要解决问题,我应该在 docker 容器中运行包安装,然后将其用作 lambda 函数的 zip 包。
以下是我的 docker 文件:
FROM lambci/lambda:python3.6
USER root
ENV APP_DIR /var/task
WORKDIR $APP_DIR
COPY requirements.txt .
COPY bin ./bin
COPY lib ./lib
RUN mkdir -p $APP_DIR/lib
RUN pip3 install -r requirements.txt -t /var/task/lib
(我使用lambci/lambda:python3.6在本地模拟python lambda环境,本地lambda函数运行良好)。
我的问题是:一旦我运行docker-build 命令,我可以看到正在构建的图像,但我似乎无法找到一种方法来压缩安装的包和依赖项(在 lib 和 bin 中)并使用它zip 文件上传到 s3。
以下是我的docker-compose 文件:
version: '3'
services:
lambda:
build: .
environment:
- PYTHONPATH=/var/task/src:/var/task/lib
- PATH=/var/task/bin
volumes:
- ./src/:/var/task/src/
【问题讨论】:
-
从镜像启动一个容器。这些文件将在其中可用。您还可以通过挂载卷将它们复制到您的主机。
标签: python amazon-web-services docker aws-lambda docker-compose