Мы используем jenkins для создания наших сборок, которые включают в себя paramiko, а также другие не нативные python пакеты, упаковывают их в архив и затем развертывают в lambda.
У нас есть базовый zip-файл, хранящийся в артефакте, который содержит зависимости пакета paramkiko, а также файл base / blank function.py, который содержит наш метод основного обработчика, используемый в лямбда-выражении. Этот zip был создан путем создания файла Requirments.txt с именем пакета / версией в нем и запуском: pip install -r needs.txt -t.
Это помещает все необходимые файлы из зависимостей в каталог. эта команда была запущена из. Затем вы можете сжать этот каталог: zip -r9 ../lambda.zip * -x "bin / *" needs.txt setup.cfg
Вы можете использовать этот базовый zip для автоматизации создания нескольких лямбд, которые используйте те же пакеты - вам просто нужно скопировать jenkins в файл лямбда-функции, который вы хотите использовать. Поэтому каждый раз, когда запускается задание jenkins для сборки / обновления лямбда-функции, она загружает тот базовый zip, который мы сделали на предыдущем шаге (который, как упоминалось, мы храним в артефакте, но вы можете хранить его где угодно), затем запускает команду ниже, чтобы обновить этот zip с новой лямбдой: zip -g ../lambda.zip /path/tocheckedoutlambda/new_lambda_function.py
Затем Jenkins использует плагин aws для загрузки в aws.
This для python очевидно, но вы должны быть в состоянии использовать аналогичные методы для других языков.
См .: https://alexharv074.github.io/2018/08/18/creating-a-zip-file-for-an-aws-lambda-python-function.html
Для получения более подробной информации о создании молнии для лямбда в python.