Создание слоя AWS Lambda, подходящего для ваших требований, - утомительная задача. Вначале мы в Propellor.ai использовали выделенный по требованию (выключение после использования) инстанс EC2 Amazon Linux для создания

локальная копия зависимостей → zip в формате, готовом для лямбда → перенесите его на S3 с последующим сценарием автоматизации для создания окончательного лямбда-слоя

Каждая новая библиотека или последняя версия требований к зависимостям используются для следования одному и тому же подходу, который требует много времени и непродуктивен для разработчиков. (Пожалуйста, не говорите - почему вы не можете использовать AWS SAM? Только не снова!)

Затем мы нашли этот простой, но элегантный скрипт в образцах AWS, который помог нам ускорить процесс создания, загрузки и управления версиями слоев Lambda с локального компьютера. Ссылка здесь.

Предварительные требования:

  • Докер
  • AWS CLI

Все, что вам нужно сделать, это выполнить следующую строку, которая также создает и загружает слой в AWS (убедитесь, что ваши ключи CLI настроены правильно).

# make-layer <LAYER-NAME> <RUNTIME> <MANIFEST-FILE>
#Example
%make-layer sample-pandas python3.8 requirements.txt

LAYER-NAME: допустимое имя слоя Lambda (буквы, числа, дефисы и подчеркивания)
RUNTIME: допустимый идентификатор среды выполнения Lambda (например, nodejs14.x, python3 .8)
ФАЙЛ МАНИФЕСТА: полный путь и имя файла действительного файла манифеста. Поддерживаются следующие типы:

Вы можете указать список пакетов, которые нужно включить в слой, в листе требований, чтобы упаковать их вместе и создать лямбда-слой.

Просто скачайте файл make-layer из репозитория GitHub и следуйте инструкциям.

ПРИМЕЧАНИЕ. убедитесь, что вы упомянули версию библиотеки, иначе по умолчанию будет выбрана последняя. Кроме того, если вы снова сгенерируете то же LAYER-NAME, новая версия будет опубликована в AWS. Посмотрите на следующий снимок экрана:

Беглый взгляд на работу:

Node и Python - две широко используемые среды выполнения в AWS Lambda. Я надеюсь, что AWS выпустит больше быстрых приемов и передовых методов, подобных этим, и поможет клиентам сконцентрироваться на основных возможностях, а не работать над проблемами инфраструктуры. Спасибо, AWS!

Больше контента на plainenglish.io