Почему моя библиотека zbar не загружается в Amazon Lambda?Докер, Заппа - PullRequest
0 голосов
/ 30 марта 2019

Я пытаюсь развернуть приложение Django в Amazon Lambda через Zappa.Приложение использует pyzbar, который имеет требование zbar или libzabar0.В моем Dockerfile я устанавливаю библиотеку zbar, и в локальном файле Docker мой код работает правильно.Однако когда я делаю zappa update dev, он выдает ошибку, что не может найти зависимость zbar.ImportError: Unable to find zbar shared library

Я осмотрелся и следую этому руководству: https://blog.zappa.io/posts/docker-zappa-and-python3. Я добавил зависимость в Dockerfile (см. Ниже) и сказал, что она работает правильно.Я также попытался развернуть zappa в каталоге выше (/var/), но затем zappa жалуется, что zip-файл слишком велик.

Dockerfile

FROM lambci/lambda:build-python3.6

LABEL maintainer='me'

WORKDIR /var/task

# Fancy prompt to remind you are in zappashell
RUN echo 'export PS1="\[\e[36m\]zappashell>\[\e[m\] "' >> /root/.bashrc

# Add your extra requirements here e.g. postgres-devel 
# RUN yum install -y yourpackages

RUN yum clean all && \
    yum -y install zbar zbar-devel

CMD ["zappa"]

Настройки Zappa

{
    "dev": {
        "django_settings": "library.settings",
        "profile_name": null,
        "project_name": "backend",
        "runtime": "python3.6",
        "s3_bucket": "bucket"
    }
}

Команда запуска Docker: docker run -ti --env .env -v "%cd%":/var/task -v ~/.aws/:/root/.aws -p "8000:8000" library bash

Моя цель - загрузить его в Amazon Lambda и правильно работать с библиотекой zbar.Тем не менее, я получаю ImportError: ImportError: Unable to find zbar shared library.

Есть идеи, как я могу это исправить?

1 Ответ

0 голосов
/ 17 июня 2019

Вы можете использовать пакет Python pip здесь: https://pypi.org/project/zbar/

Добавьте zbar к вашим требованиям. Затем он будет установлен и загружен в python virtualenv:

активируйте свой virtualenv в док-контейнере:

source /var/task/venv/bin/activate

установить библиотеки Python, определенные в файле require.txt:

pip install -r requirements.txt
...