AWS Lambda — это отзывчивый облачный сервис, который проверяет действия в приложении и реагирует на них путем развертывания пользовательских кодов, известных как функции . Он автоматически управляет вычислительными ресурсами в нескольких зонах доступности и масштабирует их при запуске новых действий.
AWS Lambda поддерживает код, написанный на Java, Python и Node.js, и сервис может запускать процессы на языках, поддерживаемых Amazon Linux (включая Bash, Go и Ruby).
Ниже приведены некоторые рекомендуемые советы по использованию AWS Lambda.
-
Напишите свой код функции Lambda в стиле без состояния.
-
Никогда не объявляйте никакие переменные функции вне области действия обработчика.
-
Убедитесь, что у вас есть набор разрешений + rx для ваших файлов в загруженном ZIP-архиве, чтобы Lambda могла выполнять код от вашего имени.
-
Удалите старые функции Lambda, когда они больше не нужны.
Напишите свой код функции Lambda в стиле без состояния.
Никогда не объявляйте никакие переменные функции вне области действия обработчика.
Убедитесь, что у вас есть набор разрешений + rx для ваших файлов в загруженном ZIP-архиве, чтобы Lambda могла выполнять код от вашего имени.
Удалите старые функции Lambda, когда они больше не нужны.
Как настроить AWS Lambda?
Выполните следующие действия, чтобы настроить AWS Lambda в первый раз.
Шаг 1 — Войдите в аккаунт AWS.
Шаг 2. Выберите Lambda в разделе сервисов AWS.
Шаг 3 — Выберите Blueprint (необязательно) и нажмите кнопку Skip.
Шаг 4 — Предоставьте необходимую информацию для создания функции Lambda, как показано на следующем снимке экрана, и вставьте код Node.js, который будет запускаться автоматически при добавлении нового элемента в DynamoDB. Выберите все необходимые разрешения.
Шаг 5 — Нажмите кнопку Далее и подтвердите свои данные.
Шаг 6 — Нажмите кнопку «Создать функцию».
Теперь, когда мы выберем сервис Lambda и перейдем на вкладку Источники событий, записей не будет. Добавьте хотя бы один источник в функцию Lambda для работы. Здесь мы добавляем таблицу DynamoDB.
Мы создали таблицу с использованием DynamoDB (мы обсудим это подробно в главе DynamoDB).
Шаг 7 — Выберите вкладку потока и свяжите ее с функцией Lambda.
Вы увидите эту запись на вкладке Источники событий на странице Сервиса Lambda.
Шаг 8 — Добавьте несколько записей в таблицу. Когда запись будет добавлена и сохранена, служба Lambda должна вызвать функцию. Это можно проверить с помощью лямбда-логов.
Шаг 9 — Чтобы просмотреть журналы, выберите сервис Lambda и нажмите вкладку Мониторинг. Затем нажмите «Просмотреть журналы» в CloudWatch.
Преимущества AWS Lambda
Ниже приведены некоторые преимущества использования задач Lambda:
-
Лямбда-задачи не нужно регистрировать как типы активности Amazon SWF.
-
Мы можем использовать любые существующие лямбда-функции, которые вы уже определили в рабочих процессах.
-
Лямбда-функции вызываются непосредственно Amazon SWF; нет необходимости разрабатывать программы для их реализации и выполнения.
-
Лямбда предоставляет нам метрики и журналы для отслеживания выполнения функций.
Лямбда-задачи не нужно регистрировать как типы активности Amazon SWF.
Мы можем использовать любые существующие лямбда-функции, которые вы уже определили в рабочих процессах.
Лямбда-функции вызываются непосредственно Amazon SWF; нет необходимости разрабатывать программы для их реализации и выполнения.
Лямбда предоставляет нам метрики и журналы для отслеживания выполнения функций.
AWS Lambda Limits
Ниже приведены три типа ограничений лямбда.
Предел дроссельной заслонки
Предел дросселя составляет 100 одновременных выполнений лямбда-функций для каждой учетной записи и применяется к общему количеству одновременных выполнений всех функций в пределах одного региона.
Формула для расчета количества одновременных выполнений для функции = (средняя продолжительность выполнения функции) X (количество запросов или событий, обработанных AWS Lambda).
Когда предел дросселя достигнут, он возвращает ошибку регулирования с кодом ошибки 429. Через 15-30 минут вы можете начать работу снова. Предел дроссельной заслонки можно увеличить, связавшись с центром поддержки AWS.
Ограничение ресурсов
В следующей таблице приведен список ограничений ресурсов для лямбда-функции.
Ресурс | Предел по умолчанию |
---|---|
Объем эфемерного диска (пробел «/ tmp») | 512 МБ |
Количество файловых дескрипторов | +1024 |
Количество процессов и потоков (общее количество) | +1024 |
Максимальная продолжительность выполнения запроса | 300 секунд |
Вызвать размер полезной нагрузки тела запроса | 6 МБ |
Вызвать размер полезной нагрузки тела ответа | 6 МБ |
Предел обслуживания
В следующей таблице приведен список ограничений служб для развертывания лямбда-функции.
Вещь | Предел по умолчанию |
---|---|
Размер пакета развертывания лямбда-функции (файл .zip / .jar) | 50 МБ |
Размер кода / зависимостей, которые можно заархивировать в пакет развертывания (несжатый размер zip / jar) | 250 МБ |
Общий размер всех пакетов развертывания, которые можно загрузить в каждом регионе | 1,5 ГБ |
Количество уникальных источников событий типа источника запланированных событий для каждой учетной записи | 50 |
Количество уникальных лямбда-функций, которые вы можете подключить к каждому запланированному событию | 5 |
Для получения последней обновленной структуры лимитов и получения дополнительной информации посетите веб- сайт https://docs.aws.amazon.com/lambda/latest/dg/limits.html/.