Пакет Lambda-слоев AWS для Python



Книга Пакет Lambda-слоев AWS для Python

Lambda-слой AWS (Amazon Web Service)  —  это механизм распределения библиотек, пользовательских сред выполнения и других зависимостей, которые можно добавить к функции Lambda. Он позволяет отделить код приложения от зависимостей, которые можно повторно использовать в нескольких функциях.


Lambda-слои развертываются в виде ZIP-архивов и могут быть прикреплены к версиям функции или опубликованы в реестре слоев, что упрощает управление и обновление функции. Они также помогают уменьшить размер пакета развертывания, повысить скорость обновления функций и упростить обмен кодом между командами или функциями.


Преимущества Lambda-слоев


Вот пять преимуществ использования Lambda-слоев AWS.



  1. Упрощение управления кодом. Lambda-слои позволяют отделить код функции от ее зависимостей, что упрощает их управление и обновление по отдельности.

  2. Ускорение обновления функции. При обновлении Lambda-слоя нужно заново развернуть только слой, а не всю функцию. Это может значительно сократить время, необходимое для обновления Lambda-функции.

  3. Повторное использование кода. Один Lambda-слой можно использовать в нескольких функциях, сокращая дублирование кода и экономя время и усилия.

  4. Сокращение размера пакета. Разделяя зависимости в Lambda-слое, можно уменьшить размер пакета функции, что ускоряет ее развертывание и снижает общие затраты на хранение.

  5. Облегчение совместной работы. Публикация Lambda-слоев в AWS Serverless Application Repository или совместное использование между командами облегчает взаимодействие с общими зависимостями и снижает вероятность конфликтов между командами.


Bash-скрипт


#!/usr/bin/env bash

pip3 install pandas sqlalchemy --target python/
zip -r pandas_sqlalchemy_layer.zip python/

Выполнение/запуск скрипта


chmod +x create_lambda_layer.sh && ./create_lambda_layer.sh

Этот bash-скрипт устанавливает Python-библиотеки Pandas и SQLAlchemy, затем упаковывает их в zip-файл, который можно использовать в качестве Lambda-слоя AWS. Вот построчное объяснение.



  1. #!/usr/bin/env bash. Это называется “строка shebang”, которая указывает системе, какой интерпретатор использовать для выполнения скрипта. В данном случае она указывает, что скрипт должен выполнять Bash Shell.

  2. pip3 install pandas sqlalchemy — target python/. Эта строка использует pip3 для установки Python-библиотек Pandas и SQLAlchemy в каталог python/. Параметр --target указывает pip3 на установку библиотек в определенный каталог, а не в какое-то место по умолчанию.

  3. zip -r pandas_sqlalchemy_layer.zip python/. Эта строка создает zip-файл с именем pandas_sqlalchemy_layer.zip, в котором находится содержимое каталога python/. Параметр -r указывает zip на рекурсивное включение всех файлов и подкаталогов.


Примечание: максимальный размер заархивированного пакета Lambda-слоя составляет 50 МБ, включая размер всех файлов и библиотек в пакете. Если пакет превышает этот предел, Lambda AWS не создаст новую версию слоя, и вы получите ошибку. Подробнее об этом здесь.


Загрузка Lambda-слоя в AWS


Ниже приведены общие шаги по загрузке Lambda-слоя pandas_sqlalchemy_layer.zip в AWS.



  1. Сначала откройте AWS Management Console и перейдите к сервису AWS Lambda.

  2. Нажмите на опцию Layers в левом меню.

  3. Затем нажмите кнопку Create Layer.

  4. Введите имя и описание для Lambda-слоя.

  5. Загрузите ZIP-архив, содержащий зависимости, перетащив файл в диалоговое окно загрузки или выбрав его с помощью инструмента выбора файлов.

  6. Укажите совместимую(ые) среду(ы) выполнения для Lambda-слоя, например Python 3.7, Python 3.8 и Python 3.9.

  7. Публикация слоя создаст новую версию, которую вы сможете использовать в своих функциях.


После создания и публикации Lambda-слоя можно присоединить его к своим функциям AWS Lambda, указав ARN слоя (Amazon Resource Name, номер ресурса Amazon) в конфигурации функции.



249   0  

Comments

    Ничего не найдено.