Можно ли сжать папку в Windows, которая будет совместима в AWS Lambda? - PullRequest
1 голос
/ 19 марта 2020

У меня есть модель Catboost, которую я построил и сохранил (через рассол), используя Python, и я пытаюсь развернуть эту модель, используя AWS Lambda. У меня есть 2 других Python скрипта для go вместе с моей моделью и скриптом lambda_function.py: functions.py и features.py. Сценарий Functions содержит функции для анализа (JSON) полезной нагрузки, генерации прогнозов и возврата объекта JSON. Сценарий функций содержит списки, словари и т. Д. c. сделать синтаксический анализ максимально эффективным. Всего эти скрипты имеют 3 зависимости: numpy, pandas и catboost.

В AWS Lambda каждая из этих зависимостей и модель нуждаются в своих «слоях». К счастью, в lambda встроено numpy, поэтому мне не нужно создавать слой для этого. Однако для pandas и Catboost мне нужно сгенерировать все файлы / каталоги модуля, сжать их и добавить в корзину S3, чтобы их можно было использовать в качестве слоев.

Мне нужно это сделать на компьютере Windows и моих рабочих компьютерах (VDI и EC2) не разрешается устанавливать и запускать Ubuntu в виртуальной коробке.

Как создать сжатую папку в среде Windows, которая будет взаимодействовать с (Linux) AWS лямбда-функцией?

1 Ответ

1 голос
/ 20 марта 2020

Это идеальный вариант использования для docker. У меня MacOS, и у меня та же проблема, что и для любой зависимости Python, для которой требуются собственные двоичные файлы, я не могу собрать их на своем Ma c и ожидать, что они будут работать в AWS Linux среде выполнения

В Amazon есть контейнер docker, соответствующий среде выполнения лямбды, поэтому вы можете использовать его для создания слоя.

Образ docker, который вы хотите использовать, - lambci / lambda особенно теги с префиксом build-python, поскольку они имеют различную среду python (2.7, 3.6, 3.7).

Предполагается, что у вас есть requirements.txt с необходимыми библиотеками, в которые вы хотите установить pip. на вашем уровне, вот пример команды docker для запуска в том же каталоге, что и requirements.txt, которая установит библиотеки в pip и соберет их во время выполнения AWS Lambda.

docker run --rm -v `pwd`:/var/task:z lambci/lambda:build-python3.6 python3.6 \
    -m pip --isolated install -t python -r requirements.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...