Я бы порекомендовал создать слой в AWS lambda.
Сначала необходимо создать экземпляр Amazon Linux (с использованием AMI, указанного в https://docs.aws.amazon.com/lambda/latest/dg/current-supported-versions.html - в настоящее время (26 марта 2019 г.) это amzn-ami-hvm-2017.03.1.20170812-x86_64-gp2 ) или контейнер докера с той же средой, что и среда выполнения лямбды.
Я лично делаю это с докером.
Например, чтобы создать слой для Python 3.6, я бы запустил
sudo docker run --rm -it -v "$PWD":/var/task lambci/lambda:build-python3.6 bash
Затем я бы создал папку python / lib / python3.6 / site-packages в / var / task в контейнере Docker (так что она будет доступна позже в каталоге на хост-машине, где я запустил Docker)
до pip3 install <your packages here> -t python/lib/python3.6/site-packages
Заархивируйте папку Python и загрузите ее в качестве слоя и используйте в моей функции лямбда-AWS.
Внимание! Пути в zip-файле должны выглядеть следующим образом: «python / lib / python3.6 / site-packages / {имена ваших пакетов}» *
Теперь тяжелые зависимости находятся в отдельном слое, и вам не нужно повторно загружать их каждый раз, когда вы обновляете функцию, вам нужно всего лишь обновить код