Skip to Content

Триггеры шаблона миссии

Триггер определяет, каким способом запускается шаблон миссии. У каждого шаблона выбирается один триггер: ручной или API-запуск, вызов из другого шаблона, сообщение NATS или MQTT либо расписание Cron.

Действие «Начало» — обязательный узел на схеме workflow. Триггер — это настройка способа запуска, связанная с этим действием. Как добавить «Начало» на пустую схему, описано в статье «Построение workflow шаблона миссии».

Триггер задаёт источник запуска, а входные параметры — данные, которые миссия получает при запуске. Состав и правила проверки этих данных описаны в статье «Входные параметры шаблона миссии».

Где настраивается триггер

Тип и параметры триггера настраиваются в правой панели действия «Начало»:

  1. Откройте шаблон в редакторе workflow.
  2. Выберите действие «Начало».
  3. В правой панели выберите «Тип триггера».
  4. Заполните параметры выбранного типа.
  5. Сохраните шаблон.

При смене типа интерфейс предупреждает, что текущая конфигурация триггера будет удалена. После подтверждения параметры нового типа заполняются начальными значениями.

Выбор типа триггера

ТипКогда использовать
APIМиссию запускает пользователь из интерфейса либо внешняя система через API Execute
ChildШаблон используется как часть другого workflow
NATSМиссия должна запускаться при получении сообщения по одному из NATS subjects
MQTTМиссия должна запускаться при публикации сообщения в один из MQTT topics
CronМиссия должна запускаться автоматически по расписанию

API

Триггер API поддерживает два способа запуска:

  • вручную из интерфейса WCS;
  • запросом к API Execute.

Дополнительных параметров у триггера нет. Его конфигурация должна оставаться пустой.

Выберите API, если запуск инициирует оператор или внешняя система напрямую. Это единственный тип триггера, для которого интерфейс показывает команду ручного запуска миссии.

Данные запуска должны соответствовать схеме входных параметров шаблона.

Child

Триггер Child предназначен для шаблона, который вызывается из другого workflow действием «Выполнить шаблон миссии». Такой шаблон нельзя запустить вручную или запросом к API Execute.

Дополнительных параметров у триггера нет. Его конфигурация должна оставаться пустой.

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

NATS

Триггер NATS запускает шаблон при получении сообщения по одному из настроенных subjects.

Подключение

ПараметрОбязательныйКак заполнить
HostДаСетевое имя или IP-адрес NATS-сервера без протокола. Например, nats.example.local
PortДаПорт NATS-сервера. Начальное значение — 4222. Допустимо целое число от 1 до 65535
Использовать TLSНетВключите, если подключение к серверу должно быть защищено TLS. Настройка должна соответствовать конфигурации NATS-сервера
АутентификацияНетВыберите «Нет», «Имя пользователя / пароль» или «Токен» в соответствии с настройками сервера
Имя пользователяДля выбранной аутентификацииУчётная запись NATS. Если указано имя, необходимо заполнить и пароль
ПарольДля выбранной аутентификацииПароль выбранной учётной записи. Не используется одновременно с токеном
ТокенДля выбранной аутентификацииТокен доступа NATS. Не используется одновременно с именем пользователя и паролем

Subjects

Добавьте хотя бы один subject. Пустые и повторяющиеся значения сохранить нельзя.

В шаблонах subjects поддерживаются символы NATS:

  • * заменяет один сегмент имени, например orders.*.events;
  • > заменяет оставшуюся часть имени и ставится в конце, например orders.>.

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

MQTT

Триггер MQTT запускает шаблон при публикации сообщения в один из настроенных topics.

Подключение

Параметры Host, Port, TLS и аутентификации заполняются так же, как для NATS. Начальное значение Port для MQTT — 1883. Порт должен быть целым числом от 1 до 65535.

Доступны способы аутентификации «Нет», «Имя пользователя / пароль» и «Токен». Имя пользователя и пароль указываются вместе. Токен нельзя использовать одновременно с ними.

Topics

Добавьте хотя бы один topic. Пустые и повторяющиеся значения сохранить нельзя.

В фильтрах topics поддерживаются символы MQTT:

  • + заменяет один уровень, например warehouse/+/events;
  • # заменяет все оставшиеся уровни и ставится в конце, например warehouse/#.

Параметр «Shared subscription» включает общую подписку. В таком режиме сообщения распределяются между подписчиками общей группы вместо доставки каждому из них. Включайте параметр только в том случае, если используемый MQTT-брокер поддерживает shared subscriptions и для контура настроена соответствующая группа.

Cron

Триггер Cron запускает шаблон автоматически по расписанию.

ПараметрОбязательныйКак заполнить
Cron-выраженияДаДобавьте минимум одно уникальное выражение из 5 или 6 полей. Например, 0 * * * * — каждый час в начале часа
Часовой поясНетУкажите часовой пояс IANA, например UTC или Europe/Moscow. Если параметр не задан, расписание интерпретируется в часовом поясе, настроенном для сервиса
Параметры миссии по расписаниюНетJSON-объект со значениями входных параметров для каждого запуска по расписанию. Имена и типы значений должны соответствовать схеме шаблона

Редактор принимает стандартные cron-выражения из 5 или 6 полей, а также сокращения @yearly, @annually, @monthly, @weekly, @daily, @hourly и @reboot. Пустые, повторяющиеся и синтаксически некорректные выражения сохранить нельзя.

Если «Параметры миссии по расписанию» не нужны, оставьте пустой JSON-объект {}. Пример для схемы с параметрами target_point и priority:

{ "target_point": "STATION_05", "priority": 5 }

Активность шаблона

После настройки активируйте шаблон, когда он будет готов к использованию.

Для неактивного шаблона обработчики NATS и MQTT не прослушивают сообщения, а расписание Cron не запускает миссии. Неактивные шаблоны также не предлагаются как доступные для обычного ручного запуска или выбора в действии «Выполнить шаблон миссии».

Если триггер настроен правильно, но миссия не запускается, сначала проверьте статус шаблона в реестре.

Проверка перед сохранением

Интерфейс не сохранит конфигурацию, если:

  • для NATS или MQTT не указан Host;
  • Port не является целым числом от 1 до 65535;
  • заполнена только одна часть пары «Имя пользователя / пароль»;
  • одновременно заданы имя пользователя с паролем и токен;
  • не добавлен ни один subject, topic или Cron-выражение;
  • в списке есть повторяющиеся значения;
  • Cron-выражение или часовой пояс IANA имеют некорректный формат;
  • JSON параметров Cron содержит синтаксическую ошибку.

После сохранения проверьте в реестре шаблонов тип триггера и статус шаблона. Для NATS, MQTT и Cron выполните контролируемый тестовый запуск на тестовом контуре.