Как запланировать функцию AWS Lambda с помощью AWS EventBridge

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

В моем любимом проекте cronjob регулярно проверяет RSS-канал моих статей на наличие обновлений. Если есть обновление, лямбда-функция добавляет статью в мою базу данных. Таким образом, мой веб-сайт отображает обзор моих статей. Автоматизация моей работы означает, что мне больше не нужно выполнять физические запросы к базе данных. Мой веб-сайт обновляется сам, что дает мне больше времени для других дел, например для написания статей.

Этой статьей я хочу облегчить вам жизнь. В этой статье рассказывается, как самостоятельно настроить такое cronjob в AWS всего за несколько щелчков мышью. Вы узнаете больше об AWS EventBridge, и это решение на 100% бесплатное.

Итак, начнем с входа в Консоль управления AWS. Первое, что мы делаем, это открываем консоль CloudWatch. Просто введите услугу или воспользуйтесь этой ссылкой.

На левой боковой панели вы увидите список интересных вещей. Все, что вам нужно, находится под Событиями. Нажмите Правила, как показано на изображении ниже.

Недавно Amazon перенесла все, что связано с событиями и правилами событий, в новый сервис. Amazon CloudWatch по-прежнему приводит вас в нужное место, но новое имя службы - Amazon EventBridge.

Не волнуйся. Та же самая логика по-прежнему работает для обоих сервисов. Так что продолжайте. Первое, что вам нужно сделать, это нажать кнопку Создать правило. Я вместе с вами пройдусь по основным этапам.

Выберите источник события.

В этом случае вы хотите периодически запускать событие. Этого можно добиться, запланировав мероприятие. Amazon позволяет использовать фиксированную ставку. Таким образом, вы можете запускать событие каждые x секунд, каждые y минут и так далее. В моем случае вы бы использовали фиксированную ставку 8 часов.

Если вам нужно больше контроля, вы можете использовать выражение cron. Синтаксис выражения cron немного сложнее. Вы можете найти всю информацию, необходимую для создания cron-выражения здесь. В выражении cron вам нужно будет указать * 1/8 * * ? *, чтобы запланировать событие каждые 8 ​​часов.

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

Выберите одну или несколько целей

Нажав Добавить цель, вы можете выбрать любую из существующих функций AWS Lambda. В моем случае я выбрал функцию AWS, которая добавляет статью на мой сайт.

Пожалуйста, дайте ему имя (и описание)

Чтобы увидеть свое правило и историю казней, вам нужно указать имя. Опишите правило, как назвать источник события. Совершенно логичным будет следующее имя: PeriodicEventRule. Но не стесняйтесь придумывать себе имя получше.

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

Ваше мероприятие в прямом эфире!

Это все! Теперь вы успешно запланировали лямбда-функцию с помощью Amazon AWS CloudWatch или Amazon EventBridge.

Вам не нужно беспокоиться о том, что вам придется платить за эту простую услугу. Это полностью бесплатный уровень. Даже после первого бесплатного года это примерно 1 доллар на миллион мероприятий.

Не беспокойтесь о том долларовом центе, который может даже не появиться на вашем счете.

Заключение

У AWS так много сервисов. Легко потеряться. Но то, что они делают, они делают невероятно хорошо. В наши дни создать cronjob так просто, и это здорово. Amazon отслеживает всю информацию, связанную с событиями. Так вы сможете заглянуть в прошлые события.

Существует множество сценариев, в которых вы хотите периодически выполнять задачу. Amazon EventBridge позволяет легко планировать эти задачи. Самое значительное преимущество - потом. Когда ваша система растет, становится еще проще управлять этими событиями и следить за ними.

Спасибо за прочтение!

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