Правило
Правило — компонент маршрутизации, состоящий из фильтра и 1-5 приемников. К шине могут быть привязаны несколько правил. Каждое событие, поступившее в шину, проходит через все правила шины. Прежде чем срабатывает правило, проверяется, соответствует ли событие условиям, заданным в фильтре. Если соответствует, правило срабатывает, и событие отправляется всем приемникам, указанным в правиле.
Фильтр
Фильтр — выражение в формате jq.firstName == "Ivan"
). Если фильтр пустой, правило считается сработавшим и события отправляются всем приемникам. Если не получается распарсить событие или тело события не удовлетворяет условиям, заданным в фильтре, правило не срабатывает.
Приемник
Приемник — это получатель события. Поддерживаемые приемники:
- WebSocket-соединения, подключенные к API-шлюзу API Gateway;
- функции Cloud Functions;
- лог-группы Cloud Logging;
- потоки данных Data Streams;
- очереди Message Queue;
- контейнеры Serverless Containers;
- рабочие процессы Workflows.
EventRouter поддерживает гарантию доставки At least once
. Если временно невозможно доставить или получить подтверждение о доставке, EventRouter будет повторно пытаться отправить событие до истечения времени жизни события. Количество повторных попыток и максимальное время жизни события задаются в настройках приемника. Событие, которое не удалось обработать, перемещается в указанную клиентом очередь Dead Letter Queue.
В целях оптимизации EventRouter позволяет задать настройки группирования событий для некоторых типов приемников. В приемнике может быть задан jq-шаблон, в соответствии с которым события преобразовываются перед отправкой в приемник.