Я попытался развернуть свою бессерверную функцию на AWS lambda, но получил эту ошибку:
Unzipped size must be smaller than 262144000 bytes.
Уменьшить размер функции не могу, т.к. есть обученная модель машинного обучения (около 400Мб).
Есть ли способ увеличить максимальный размер лямбды?
@WilliamWang Конечно! Проблема в том, что модель ИИ слишком велика.
вы можете создать слой и загрузить зависимые модули
@ aviboy2006 Суммарный размер Lambda и Layer ограничен 250 МБ. Таким образом, модель 400 МБ не поместится в слой.
Обновление за июнь 2022 г.
Локальное хранилище Lambda в /tmp
теперь можно расширить до 10 ГБ вместо 512 МБ, как указано в моем ответе.
Если размер вашей модели составляет 400 МБ, вы не сможете загрузить ее с помощью Lambda или слоя.
С моей точки зрения, у вас есть три варианта:
/tmp
. К сожалению, у вас всего 512 МБ в /tmp
. Если ваша модель увеличит свой размер сверх этого, это больше не будет работать.Все эти решения усложняют ваше решение. Я думаю, что решение S3
(вариант 1) проще всего, но в будущем это может вызвать у вас проблемы. Это также значительно увеличит время холодного запуска, потому что ваша Lambda должна загрузить 400 МБ.
Использование тома EFS должно быть лучшим компромиссом. Это не должно слишком сильно повлиять на время холодного запуска, так как том нужно просто смонтировать и загружать файлы не нужно. У вас также не будет проблемы с ограничением в 512 МБ /tmp
.
Наконец-то вы можете настроить эфемерное хранилище Lambda, так что теперь /tmp можно увеличить до 10 ГБ :-)
вы исключили node_modules в файле serverless.yml?