Как бороться с большими зависимостями в AWS Lambda? - PullRequest
1 голос
/ 13 июля 2020

Я использую AWS Lambda, и функции, которые мне нужно развернуть, требуют множества разных пакетов. При использовании serverless-python-requirements размер создаваемого zip-файла составляет 169,5 МБ, что намного превышает ограничение в 50 МБ. Я пробовал использовать лямбда-слои, но это не решает проблему с размером.

Я также пробовал выгружать zip-файл в корзину s3, но он все еще слишком велик для загрузки при вызове функции. Мне нужны все эти пакеты, и я не уверен, как их все развернуть.

Мой requirements.txt файл выглядит так:

bs4==0.0.1
gensim==3.8.3
matplotlib==3.2.2
nltk==3.5
numpy==1.19.0
openpyxl==3.0.4
pandas==1.0.5
pyLDAvis==2.1.2
spacy==2.3.1
XlsxWriter==1.2.9

1 Ответ

7 голосов
/ 13 июля 2020

Совсем недавно AWS объявил о поддержке EFS для Lambda. Прочтите объявление здесь . EFS или файловая система Elasti c - это файловая система NFS для вычислительных узлов. Подробнее о них читайте здесь .

Теперь вы можете подключить сетевое хранилище к вашей лямбда-функции. Я лично использовал его для загрузки огромных справочных файлов, размер которых превышает лимит хранилища файлов Lambda. Для пошагового руководства вы можете обратиться к этой статье по AWS. Чтобы сделать вывод из статьи:

EFS для Lambda позволяет вам обмениваться данными между вызовами функций, читать большие файлы справочных данных и записывать выходные данные функции в постоянное и совместно используемое хранилище. После настройки EFS вы предоставляете функции Lambda точку доступа ARN, позволяющую читать и записывать в эту файловую систему. Lambda надежно подключает экземпляры функций к целям монтирования EFS в той же зоне доступности и su bnet.

...