Веб -ook — это способ реагирования на изменение системы, используя пользовательский обратный вызов в ваших веб-приложениях. Запросы веб -ook срабатывают из Саас Приложения, такие как Машины , Полоса и т. д. и т. Д., На конечную точку API в вашем приложении, и если эти запросы быстро увеличиваются, вам понадобится способ асинхронно обработки запросов, чтобы убедиться, что ваш сервер не перегружен.
В этом посте мы посмотрим на Hookdeck и Amazon Eventbridge Два сервиса, которые предлагают системы для асинхронной обработки, чтобы узнать, что является лучшим вариантом для обработки запросов WebHook.
Hookdeck является инфраструктурой в качестве системы обслуживания для обработки веб-качников. Hookdeck предоставляет очередь сообщений, которая асинхронно обрабатывает веб-капусты, провязывая запросы WebHook из ваших приложений SaaS и распространяя их в вашу конечную точку обратного вызова на основе загрузки, которую ваш API может обрабатывать. С помощью Hookdeck вы также получаете систему лесозаготовительной системы для ваших запросов, запросить фильтрацию, повторных попыток и приборной панели для поиска и устранения неполадок своих веб-капусов.
Amazon Eventbridge является инфраструктурой в качестве системы обслуживания для архитектуры, управляемые событиями . Он использует шину событий для глотания События из источников событий и направляет их в соответствующие потребители событий. Источники событий и потребители событий включают услуги AWS, приложения SAAS и конечные точки HTTP. Помимо шины событий по умолчанию в каждом экземпляре EventBridge также позволяет создавать пользовательскую шину событий для особых потребностей вашей системы. EventBridge также предлагает фильтрацию, мониторинг и аудит событий.
Чтобы получить первый опыт с этими двумями, я решил настроить веб-кауки из моего магазина Shopifier на обоих AWS EventBridge и Hookdeck.
EventBridge использует события, поэтому вы не можете сделать его запросы WebHook HTTP. Таким образом, я буду использовать архитектуру ниже, чтобы получить EventBridge для работы с веб-кавками (посмотрите эту статью для получения более подробной информации об этой архитектуре).
Я буду делиться своим опытом, используя следующие критерии:
- Настройка требований
- Количество шагов для завершения процесса
- UI/UX.
- Время завершить настройку
Настройка требований
AWS EventBridge
Чтобы реализовать вышеуказанную архитектуру и маршрут My Shopify WebHooks через EventBridge на My Backend API, необходимы следующие компоненты:
- AWS Lambda Функция производить и публиковать события в автобус событий EventBridge’s Default
- AWS API Gateway Чтобы включить HTTP-запросы, ориентированные на мой (продюсер событий) Лямбда функция
- AWS Lambda Функция Чтобы потреблять события с шины событий EventBridge’s Default, а затем позвоните в My Backend API
- Знание одного из поддерживаемых языков для написания функций лямбда (я использовал Nodejs, но PHP, Java, Ruby, C # и Go также поддерживаются)
- HTTPS конечная точка для моей Backeng API
Волокна
Для достижения того же маршрутизации WebHook с использованием Hookdeck требует следующих компонентов:
- HTTPS конечная точка для моей Backeng API
Количество шагов для завершения процесса
AWS EventBridge
Нарезайтесь, потому что это огромный. Честно говоря, я сократил этот список, чтобы удалить все дополнительные шаги, которые я взял для устранения неполадок всей настройки, но это все равно чувствует себя как много шагов. Вот основные шаги, которые я взял, чтобы получить веб-поя, работающие на EventBridge:
Настроить Я Роль для услуг в этой архитектуре
- Создать Я роль
- Добавить политики/разрешения для
- Издательство событий в EventBus
- Создание журнальных групп на Cloudwatch.
- Издательство журналов в Cloudwatch.
- Добавьте роль IAM для вашего пользователя AWS
- Создать (Производитель событий) Лямбда функция
- Создайте функцию лямбда, используя
Автор с нуля
вариант - Напишите код функции лямбда в:
- Получите тело запроса веб -ookook
- Создайте объект события, определяющий
Detailtype
,Eventbus
иИсточник
параметры - Добавить тело запроса веб -ook как
Деталь
Параметр для события объект - Используйте AWS SDK Чтобы опубликовать объект события к EventBridge
- Разверните функцию
- Создайте функцию лямбда, используя
- Создайте шлюз API
- Создать новый
Отдых API
Шлюз - Добавить новый ресурс
- Добавьте метод сообщения для ресурса
- Свяжите метод Post к функции лямбда, созданной выше
- Создать новый
- Создать (событие потребитель) Лямбда функция
- Создайте ту же функцию, что и производитель событий и добавить код, чтобы сделать следующее
- Извлечь событие из шины eventBridge по умолчанию для доступа к телу запроса веб -ook
- Составьте почтовый запрос на ваш BackeND API с телом запроса веб-канала
- Разверните функцию
- Создайте ту же функцию, что и производитель событий и добавить код, чтобы сделать следующее
- Настройка EventBridge
- Создать новый
Правило
Для EventBridgeпо умолчанию
автобус - Добавить шаблон соответствия события, который соответствует вашему
Detailtype
иИсточник
от производителя событий Lambda функция. Это обеспечит только события, которые соответствуютDetailtype
иИсточник
будет толкаться в автобус событий - Добавьте свой мероприятие Pegner Lambda функционируют как цель для
Правило
созданный
- Создать новый
- Проверьте настройку
Фу! Теперь это некоторые настройки.
Волокна
Теперь, чтобы устроиться. Вот список шагов, которые я предпринимал, чтобы успешно заставить My Shopify WebHooks обрабатываться через очереди сообщений Hookdeck:
- Создать новое соединение
- Назовите ваше соединение (для меня это было
Shopify Store Cooks
) - Введите метку назначения (для меня это было
Мой производственный API
Несомненно - Введите URL-адрес назначения (ваш бэкэнд
HTTPS
конечная точка) - Развернуть соединение (нажмите кнопку
Создать соединение
)
- Назовите ваше соединение (для меня это было
- Замените конечную точку в Shopify с генерируемым Hookdeck после создания соединения.
Сделанный! Это все, что есть к этому.
UI/UX.
Следующие критерии, которые я использовал для того, чтобы судить о своем опыте, был пользовательский интерфейс и пользовательский опыт, который часто зависит друг от друга. Итак, давайте посмотрим на то, что ожидать от этих двух услуг, насколько количество экранов и форм, которые должны проходить при настройке веб-качников. Обратите внимание, что это минимальные оценки, основанные на моем демо, и у вас может быть другой номер в зависимости от того, как вы выполняете задачу.
AWS EventBridge
- Создание функции лямбда: 2 экрана, 1 форма, 3 принудительных поля (двойное значение для обеих лямбда)
- Создание шлюза API: 5 экранов, 4 формы, 6+ обязательных полей (зависит от вариантов)
- Настройка EventBridge: 2 экрана, 1 форма, 5 обязательных полей
Всего у нас есть 11 экранов, 7 форм и 17+ обязательных полей. Я намеренно оставил количество экранов, которые нужно для настройки Я просто чтобы иметь справедливое сравнение. Вы также можете в конечном итоге перемещаться по большему количеству экранов и форм при устранении неполадок.
Волокна
- Создание соединения: 1 экран, 1 форма, 3 Обязательные поля
- Заменив конечную точку в шопифине: 1 экран, 1 форма, 1 Обязательное поле
Всего у нас есть 2 экрана, 2 формы и 4 обязательных поля. Это, очевидно, менее трудоемкий пользовательский опыт.
Время завершить настройку
Это одна метрика, которая не будет точно одинаковыми для всех, но я постараюсь разбиться, мой опыт, чтобы дать некоторое представление о том, сколько времени вы должны ожидать, чтобы потратить настройку веб-канд на каждой платформе.
AWS EventBridge
Как впервые пользователь, мне пришлось занять время, чтобы получить некоторые знания о том, как настроить его, хотя я прекрасно понимаю, что это делает. Я не включаю в себя время, проведенное на видео на YouTube и страницами документации, однако я считаю, что это также важное соображение для любого использования EventBridge впервые.
Я начал создать архитектуру в 7 вечера и закончил настройку всех движущихся частей в 10 вечера (через 3 часа). Глядя на шаги, вы можете подумать, что не сопоставляется, но была довольно кривая обучения, чтобы убедиться, что все правильно настроено, что добавляет к общему времени, которое вы проводите на нем.
Затем я переехал на следующий шаг, который тестировал всю настройку, чтобы убедиться, что все работало нормально. Там я оказался проведением еще на 2 часа устранения неисправностей всего процесса. Если вы знакомы с AWS, вы можете догадаться, что политики/разрешения IAM являются причиной такого утомительного процесса.
Я был смиден IAM и был супер исчерпан после того, как выяснил его в конце концов. Это может быть не ваша проблема при настройке, но сознавать, что вам может придеться создать некоторую комнату для большего времени устранения неполадок на настройке
Волокна
Заполнение одной формы, которую в основном требуется мой https
Конечная точка была довольно простой задачей на Hookdeck. Мне потребовалось около 10 минут, чтобы пройти весь процесс, от Hookdeck, чтобы обновить свой магазин Shopify, а также дополнительные 5 минут тестирования настройки из Shopify на My Backend API.
Таким образом, у вас есть, мой опыт работы с веб-кавками на обоих AWS EventBridge и Hookdeck. Я оставлю вам окончательное решение, однако очевидное, что может показаться, но мой убранный — это то, что если вы хотите, чтобы следующие …
- Инструмент All-in-One, который быстро настроен и не требует продвинутых знаний о дизайне систем или галстуки к определенному поставщику облака
- Чтобы сэкономить время настройки веб-капонов
- Простой процесс в бортовом процессе для других участников в вашей команде, который хочет настроить веб-вики для асинхронной обработки
- CLI, чтобы получить веб-появляющиеся локально с целью отладки и устранения неполадок
- Совместная платформа, где ваша обработка и информация WebHook может быть доступна и управляться членами вашей команды
- Всесторонний приятный пользовательский опыт работы с веб-кавками
… Тогда Hookdeck — это путь. Начните сегодня бесплатно Отказ
Оригинал: «https://dev.to/hookdeck/hookdeck-vs-amazon-eventbridge-which-way-to-go-for-your-webhooks-528h»