Руководство по началу работы с AWS EventBridge и Node.js

Вы разрабатываете архитектуру, управляемую событиями? Если это так, то мост событий AWS может стать вашей следующей удачной ставкой. Согласно AWS для EventBridge —

«Amazon EventBridge — это бессерверная шина событий, упрощающая создание событийно-ориентированных приложений в масштабе с использованием событий, генерируемых вашими приложениями, интегрированными приложениями «программное обеспечение как услуга» (SaaS) и сервисами AWS»

Что такое событийно-ориентированная архитектура?

Архитектура, управляемая событиями, — это парадигма программирования, в которой мы разрабатываем приложения так, чтобы они реагировали на «существенное изменение состояния приложения».

EventBridge — это еще одна служба оркестрации сообщений/событий, такая же, как AWS SNS и SQS, но функциональность сильно отличается. Поскольку эта статья больше посвящена службе EventBridge, я покажу полную демонстрацию подключения и использования приложения node js к службе моста событий.

Начнем с реализации AWS EventBridge.

Шаг 1. Настройте правила

Перейдите к Консоли управления AWS и найдите Amazon EventBridge.

Нажмите «Создать правило».

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

Тип правила имеет два параметра

  1. Правило с шаблоном события
  2. Расписание

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

Нажмите Далее.

Шаг 2. Создайте шаблон событий

Для шаблона события выберите «Пользовательские шаблоны (редактор JSON)» и добавьте действительный JSON. JSON { «source»: «node-js-test» } означает, что мост событий будет принимать событие, у которого есть источник свойства со значением node-js-test.

Нажмите Далее.

Шаг 3: Выберите цели

В демонстрационных целях я просто использую журнал CloudWatch, чтобы просмотреть сведения о событии, отправляемом из приложения node js. Я использую здесь одну цель, но вы можете добавить несколько.

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

Добавление функции Lambda в качестве цели будет означать, что функция будет выполняться, как только мост событий поймает действительное событие.

Нажмите Далее.

Шаг 4: Добавьте теги

Этот шаг совершенно необязателен, и вы можете выбрать, добавлять теги или нет.

Шаг 5. Проверьте конфигурацию и создайте правило

В консоли AWS Event Bridge новое добавленное правило будет отображаться, и консоль будет выглядеть так:

Шаг 6: Создание сервера Node.js

Для этой цели я создам минимальный экспресс-сервер. В данном случае установка двух пакетов npm aws-sdk и express, dotenv для учетных данных.

Файл 1: AWS.js

Чтобы отправить событие в службу моста событий, все, что вам нужно сделать, это использовать функцию putEvents, предоставленную в пакете aws-sdk. Объект params содержит минимум указанных выше значений, дополнительные атрибуты доступны в официальной документации.

index.js

Как только вы запустите приложение, событие будет отправлено в службу EventBridge. который при успешном вызове будет записывать в журнал cloudwatch (поскольку мы добавили группу журналов cloudwatch в качестве цели).

Полный код доступен здесь:



Не работает на вас?

Возможные сценарии —

  1. Область шины событий должна быть постоянной.
  2. Проверьте, открыта ли/запущена ли ваша шина событий.
  3. Если вы использовали собственное имя шины, добавьте свойство EventBusName в объект params.
  4. Группа журналов наблюдения за облаком будет создана в том же регионе, что и служба моста событий. Обязательно укажите регион AWS, в котором вы инициировали сервис.

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

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Присоединяйтесь к нашему сообществу Discord.