Правила маршрутизации Dispatch
Автоматически направляйте сообщения к нужному провайдеру на основе окружения и меток — без изменения кода отправки.
Попробовать arrow_forwardTL;DR
- check_circleПравила маршрутизации (Flows) позволяют автоматически выбирать провайдера доставки на основе свойств запроса
- check_circleDispatch анализирует поля env (окружение) и tags (метки) входящего запроса
- check_circleЕсли providerId не указан в запросе явно, система подбирает провайдера по правилам
- check_circleОператоры сравнения: = (равно), != (не равно), contains (содержит)
- check_circleПравила управляются в интерфейсе Dispatch → Flows без изменений в коде
Что такое правило маршрутизации?
Правило маршрутизации (Flow) — это условие, по которому Dispatch определяет, через какого провайдера доставить сообщение. Каждое правило описывает: какое свойство запроса проверить, какое значение ожидать и к какому провайдеру направить сообщение при совпадении.
Как работает маршрутизация
При получении запроса на отправку сообщения Dispatch последовательно проверяет активные правила. Если в запросе не указан конкретный провайдер (поле providerId), система выбирает провайдера первого совпавшего правила. Если ни одно правило не совпало — сообщение не доставляется.
Запрос поступает в Dispatch
Ваше приложение отправляет сообщение через Dispatch API. Запрос содержит тело сообщения, получателей и дополнительные свойства — env и tags.
Проверка providerId
Если в запросе явно указан providerId, сообщение направляется к этому провайдеру напрямую, правила маршрутизации не применяются.
Применение правил
Dispatch последовательно проверяет активные правила. Каждое правило сравнивает значение выбранного свойства (env или tags) с заданным в условии значением.
Доставка через совпавшего провайдера
Сообщение доставляется через провайдера первого совпавшего правила. При необходимости — сохраняется в истории отправок.
Свойства запроса: env и tags
Два поля запроса CreateMessageRequest используются как условия маршрутизации:
- check_circleenv — строка, обозначающая окружение отправителя: dev, staging, production или любое кастомное значение. Позволяет направлять сообщения из разных окружений к разным провайдерам.
- check_circletags — массив строк с произвольными метками: например, ["alerts", "critical"] или ["newsletter", "weekly"]. Позволяет группировать сообщения по логическому признаку и маршрутизировать их независимо от окружения.
Операторы сравнения
| Оператор | Значение | Пример |
|---|---|---|
| = | Точное совпадение | env = production — только для продакшн-окружения |
| != | Не равно | env != production — всё, кроме продакшн |
| contains | Содержит подстроку | tags contains critical — сообщения с меткой critical |
Как настроить правило маршрутизации
Правила настраиваются в разделе Dispatch → Flows. Каждое правило привязано к проекту (bucket) и определённому провайдеру.
Откройте Dispatch → Flows
Перейдите в раздел Flows. Здесь отображается список всех правил маршрутизации для текущего проекта.
Нажмите Add New
Откроется форма создания нового правила.
Задайте условие
Выберите Property (Env или Tags), оператор сравнения (=, !=, contains) и значение для сравнения.
Выберите провайдера
Укажите провайдера, которому должны направляться сообщения при совпадении условия. Провайдеры настраиваются в разделе Dispatch → Providers.
Сохраните и активируйте
Сохраните правило. При необходимости включите флаг Save in history, чтобы все совпадающие сообщения сохранялись в истории отправок.
Типичные сценарии использования
- check_circleОтправка алертов из продакшн-окружения (env = production) через Telegram-бота дежурной команды
- check_circleПеренаправление тестовых сообщений (env = dev) в email-ящик разработчика вместо реального канала
- check_circleМаршрутизация критических уведомлений (tags contains critical) через SMS-провайдера
- check_circleОтправка маркетинговых рассылок (tags contains newsletter) через email-провайдера с высоким лимитом
Настройте маршрутизацию сообщений
Создайте правила в Dispatch и управляйте доставкой сообщений без изменения кода
Открыть Dispatch arrow_forward