Создание слоя 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)
ФАЙЛ МАНИФЕСТА: полный путь и имя файла действительного файла манифеста. Поддерживаются следующие типы:
- Node.js:
package.json
- Python:
requirements.txt
Вы можете указать список пакетов, которые нужно включить в слой, в листе требований, чтобы упаковать их вместе и создать лямбда-слой.
Просто скачайте файл make-layer из репозитория GitHub и следуйте инструкциям.
ПРИМЕЧАНИЕ. убедитесь, что вы упомянули версию библиотеки, иначе по умолчанию будет выбрана последняя. Кроме того, если вы снова сгенерируете то же LAYER-NAME, новая версия будет опубликована в AWS. Посмотрите на следующий снимок экрана:
Беглый взгляд на работу:
Node и Python - две широко используемые среды выполнения в AWS Lambda. Я надеюсь, что AWS выпустит больше быстрых приемов и передовых методов, подобных этим, и поможет клиентам сконцентрироваться на основных возможностях, а не работать над проблемами инфраструктуры. Спасибо, AWS!
Больше контента на plainenglish.io