Перейти к содержимому

Условия правил ​

В блоке «Если» правила обработки выберите данные, операцию и значение. Условия читают исходный запрос до преобразования текста.

Все или хотя бы одно ​

«Все условия» требует совпадения каждого пункта. Например, environment равно production и event.type равно service_failed.

«Хотя бы одно условие» подходит для альтернатив: текст содержит ERROR или текст содержит CRITICAL. Одно обычное правило содержит одну группу; вложенных сочетаний AND/OR нет. Для более сложного маршрута используйте несколько правил с продуманным порядком или подготовьте признак на стороне отправителя.

Исходный текст тела ​

ОперацияПримерКогда совпадёт
СодержитERRORВ теле есть точный фрагмент ERROR
Точно равенbuild_failedВсё тело равно build_failed
Не равенbuild_okВсё тело отличается от build_ok
Соответствует регулярному выражению^ERROR\bТело начинается с ERROR, после которого граница слова

Обычные текстовые сравнения учитывают регистр, пробелы и переносы. build_ok и build_ok с переводом строки в конце различаются; error не содержит ERROR. При отправке теста используйте --data-binary, чтобы сохранить тело.

«Не равен» — точное неравенство всего тела. Если нужны только ошибки, положительное условие «Содержит ERROR» обычно точнее, чем «Не равен OK».

Исходный JSON ​

Отправляйте корректный JSON с Content-Type: application/json. В поле «Путь JSON» укажите путь, например event.status или items.0.name. Точка разделяет уровни, индекс массива начинается с нуля. Ключ с точкой внутри таким путём адресовать нельзя.

ОперацияНастройкаПример совпадения
Поле существуетПуть event.statusПоле присутствует, включая значение null
Поле равноПуть event.status, тип «Строка», значение failed{"event":{"status":"failed"}}
Поле не равноТот же путь и значение{"event":{"status":"completed"}}
Поле входит в списокПуть event.status, строки failed, timeoutЛюбое из двух значений

Выбирайте тип: строка, число, Boolean или null. Строка "1" отличается от числа 1, а строка "true" — от логического true. Числа 1 и 1.0 сравниваются как равные. Регистр строк и пробелы значимы.

Отсутствующее поле и null ​

Для условий event.status равно / не равно строке failed:

ВходРавноНе равноПоле существует
{"event":{"status":"failed"}}ДаНетДа
{"event":{"status":"completed"}}НетДаДа
{"event":{"status":null}}НетДаДа
{"event":{}}НетНетНет
{"event":{"status":{}}}НетНетДа
Не-JSON запросНетНетНет

«Поле не равно» не ловит отсутствующий путь. Равно, не равно и входит в список сравнивают скалярные значения или null; объект и массив не совпадают с этими операциями. Если значение должно быть именно null, выберите тип null. Если нужны все неизвестные события, настройте правило по умолчанию.

Числовых операций «больше» и «меньше» нет. Для температуры выше порога источник должен передать готовый тип события или флаг, например event.type = temperature_high либо over_limit = true.

Content-Type ​

Выберите «Content-Type» → «Равен» или «Не равен» → text/plain, text/markdown либо application/json. Для поддерживаемого типа параметры вроде ; charset=utf-8 не меняют базовый формат.

Условие «Не равен application/json» подходит для поддерживаемых текстовых форматов. Оно не превращает произвольный MIME-тип в допустимый: формат запроса проверяется перед правилами.

Регулярные выражения ​

Используется PCRE2. Вводите выражение без обрамления /.../ и флагов после него. Регистр задаётся переключателем «Учитывать регистр»; сервер использует режим Unicode.

Например, ^ERROR\b совпадает с ERROR disk full, но не с NOTICE ERROR. При выключенном учёте регистра совпадёт и error disk full.

Условие с регулярным выражением только проверяет текст. Чтобы сохранить именованные группы как переменные для шаблона, нужна отдельная операция «Извлечь переменные регулярным выражением» в действиях.

Проверьте границы ​

Через «Проверить на примере» прогоните ожидаемое событие, альтернативное событие, отсутствующее поле и значение другого типа. Смотрите выбранную ветку и порядок проверок: подходящее правило может не выполниться, если раньше совпало другое.

Полный пример с несколькими входами — JSON-маршрутизация.

Практический пример «В списке» для источника и «Равно» для статуса — состояния AI и workflow. Он также показывает default для неизвестного источника и отсутствующего поля.