Практикум: Настройка автоматизаций

Данный раздел описывает практические примеры создания и настройки автоматизаций в системе. Описана конфигурация всех доступных типов триггеров: ручного запуска, запуска по расписанию, по событию и через вебхук.

Содержание раздела:

Предварительные условия и предметная область

Для настройки автоматизаций в примерах практикума используются следующие компоненты системы:

  1. Схема домена: Домен инцидентов с сущностью Инцидент.

  2. Основа автоматизации:

    • console — отладочный скрипт, выводящий входные аргументы функции main в лог запуска:

      def main(timestamp_arg_2: datetime, str_arg_3: str = default_value, float_arg_4: float = 0.0, bool_arg_5: bool = False, int_arg_1: int = 0):
    • batch_get_orgs_deno — скрипт для периодического сбора информации в системе, не принимающий входных аргументов (main()).

Перед началом настройки убедитесь, что в разделе Автоматизация процессов → Автоматизации у вас есть права на создание и редактирование объектов.

Общий порядок создания автоматизации

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

  1. Перейдите в раздел Автоматизация процессов → Автоматизации.

  2. Нажмите на кнопку Создать (plus) в левом верхнем углу. Откроется форма создания автоматизации.

  3. В блоке Информация заполните поля:

    • Название — укажите имя автоматизации, которое будет отображаться в общем списке.

    • Описание (опционально) — кратко опишите назначение автоматизации для других пользователей системы.

  4. В блоке Настройки укажите базовые параметры выполнения:

    • Основа автоматизации — нажмите на поле выбора, в открывшемся окне выберите необходимый элемент экспертизы (плейбук или скрипт) и нажмите Добавить. На основе выбранного элемента система определяет логику работы автоматизации.

      Чтобы проверить ожидаемые входные параметры функции main после выбора основы автоматизации, нажмите на кнопку eye справа от поля выбора. Откроется окно просмотра исходного кода элемента экспертизы.
    • Организации — выберите организацию, в которой будет доступен запуск данной автоматизации.

    • Группа воркеров — выберите группу воркеров из выпадающего списка.

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

  5. В блоке Привязка данных при необходимости настройте связь автоматизации со следующими системными объектами:

    • Переменные (опционально) — выберите переменные, хранящиеся в системе. Привязанные переменные пробрасываются в контекст маппинга (ctx.var.<имя_переменной>) и могут использоваться скриптом во время выполнения. Подробнее о переменных написано в разделе Контекст запуска.

    • Конфигурации (опционально) — выберите системные файлы конфигураций. Связанные конфигурации пробрасываются в контекст выполнения (ctx.config.<имя_конфигурации>), позволяя динамически изменять параметры работы скрипта без изменения его исходного кода. Подробнее о конфигурациях написано в разделе Контекст запуска.

  6. В блоке Доменные объекты при необходимости настройте предварительную загрузку справочных или контекстных данных CMS непосредственно перед запуском автоматизации. Загруженные данные помещаются в контекст выполнения (ctx.cms_objects) и могут быть использованы при расчете аргументов запуска или проверке бизнес-условий. Нажмите на кнопку Добавить (plus) и укажите:

    • Домен — выберите необходимый домен из выпадающего списка.

    • Сущность — выберите сущность из выпадающего списка.

    • RQL — введите RQL-запрос для предварительной фильтрации объектов внутри выбранной сущности.

      Более подробно о предзагрузке объектов написано в разделе Контекст запуска.

      Не нажимайте кнопку Добавить (plus) в блоке Доменные объекты, если для работы плейбука или скрипта не требуются дополнительные данные. Пустая добавленная строка сущности вызовет ошибку валидации формы при сохранении. Удалить данную группу полей можно, нажав на кнопку trash.
  7. В блоке Политика запуска выберите необходимый тип триггера и настройте его специфические параметры:

  8. В блоке Параметры выполнения настройте права системного бота-исполнителя:

    • Роли бота (опционально) — назначьте боту статические роли в системе.

    • Дополнительные права для запуска (опционально) — укажите отдельные права, необходимые боту для выполнения конкретных действий.

  9. В блоке Права доступа при необходимости настройте права пользователей. Для этого в поле Запуск автоматизации выберите из списка роли пользователей, которым разрешен просмотр, запуск и отслеживание выполнения данной автоматизации в системе.

  10. Нажмите на кнопку Запустить в левом верхнем углу для создания и активации автоматизации.

Настройка специфических параметров в блоке Политика запуска

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

Настройка ручного запуска

Задача: предоставить пользователю возможность вручную выводить в консоль отладочные параметры инцидента ИБ непосредственно из карточки объекта.

Шаги настройки

  1. В блоке Настройки в качестве основы выберите скрипт console.

  2. В блоке Политика запуска укажите:

    • Триггер — выберите тип триггера Ручной запуск.

    • Бизнес-условие (опционально) — введите true или оставьте поле пустым. Результат будет один и тот же. Более подробно о назначении бизнес-условий описано в разделе Бизнес-условие.

    • Повторы запуска при ошибке — выберите стратегию Без повторов.

    • Поведение при наличии активного запуска — выберите стратегию Разрешить параллельный запуск. Это позволит разным пользователям одновременно запускать отладку по разным инцидентам.

  3. Перейдите к блоку Параметры запуска, который появится в левом столбце под блоком доменных объектов, и настройте входные аргументы скрипта:

    • Для обязательного аргумента timestamp_arg_2 (тип Datetime):

      • Нажмите на кнопку JS в верхнем правом углу его карточки, чтобы переключить режим ввода в режим вычисляемого JavaScript-выражения.

      • В появившемся поле введите выражение для передачи текущего времени запуска:

        new Date()
        Если нужно передать фиксированную дату, убедитесь, что выбран статический режим keyboard, нажмите на кнопку calendar и выберите дату (например, 30.07.2026).
    • Для опционального аргумента str_arg_3 (тип String):

      • Нажмите кнопку JS в верхнем правом углу карточки.

      • Введите выражение для передачи имени инцидента, из карточки которого производится запуск, поскольку при ручном запуске над объектом сам этот объект передается в ctx.input:

        ctx.input.name
    • Остальные опциональные аргументы (float_arg_4, bool_arg_5, int_arg_1) оставьте в статическом режиме ввода со значениями по умолчанию.

  4. Завершите создание автоматизации согласно разделу Общий порядок создания автоматизации.

Настройка запуска по расписанию

Задача: настроить ежечасный фоновый запуск скрипта сбора и синхронизации данных об организациях.

Шаги настройки

  1. В блоке Настройки в качестве основы выберите скрипт batch_get_orgs_deno.

    В блоке Параметры запуска появится сообщение Аргументы для запуска не требуются, так как у данного скрипта функция main() не имеет входных параметров.
  2. В блоке Политика запуска укажите:

    • Триггер — выберите тип триггера Расписание.

    • Cron-выражение — введите выражение в формате 0 9 * * * * для запуска каждый час на 9-й минуте.

    • Часовой пояс — выберите часовой пояс из выпадающего списка, например, GMT +3:00.

    • Бизнес-условие (опционально) — введите true или оставьте поле пустым. Результат будет один и тот же. Более подробно о назначении бизнес-условий описано в разделе Бизнес-условие.

    • Повторы запуска при ошибке — выберите стратегию Без повторов.

    • Поведение при наличии активного запуска — выберите стратегию.

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

Настройка запуска по событию

Задача: настроить автоматический запуск отладочного скрипта при создании в системе новых инцидентов, имеющих статус Общий инцидент.

Шаги настройки

  1. В блоке Настройки в качестве основы выберите скрипт console и настройте параметры запуска аналогично примеру ручного запуска.

  2. В блоке Политика запуска укажите:

    • Триггер — выберите тип триггера Событие.

    • Тип события — выберите значение Создание объекта из выпадающего списка.

    • Домен — выберите Домен инцидентов из выпадающего списка.

    • Сущность — укажите Инцидент.

    • Критерии фильтрации — введите VRL-выражение для первичной фильтрации событий на уровне коллектора событий до отправки на воркер (подробнее о синтаксисе и примерах фильтрации читайте в разделе Критерии фильтрации событий):

      .parse_json!(data).objectAttributes.current.incidentType == "Общий инцидент"
    • Режим сбора событий (Агрегация) — выберите Не выбран для поштучной обработки событий.

    • Бизнес-условие (опционально) — введите true или оставьте поле пустым. Результат будет один и тот же. Более подробно о назначении бизнес-условий описано в разделе Бизнес-условие.

    • Повторы запуска при ошибке — выберите стратегию Без повторов.

    • Поведение при наличии активного запуска — выберите стратегию Пропустить запуск.

    • Выделенный воркер — выберите воркер из выпадающего списка.

      Для всех автоматизаций типа Событие в системе необходим выделенный воркер. При его выборе под полем отображается информационная панель, показывающая в реальном времени текущие показатели нагрузки воркера и количество привязанных к нему автоматизаций. После сохранения система автоматически присваивает тег группы воркеров вида dedicated_%n% (например, dedicated_6). Изменить его вручную невозможно.
  3. Завершите создание автоматизации согласно разделу Общий порядок создания автоматизации.

Настройка запуска вебхука

Задача: настроить автоматизацию для асинхронного приема оповещений в формате JSON от внешней системы мониторинга и вывода их содержимого в лог.

Шаги настройки

  1. В блоке Настройки в качестве основы выберите скрипт console.

  2. Настройте динамический блок Параметры запуска в левом столбце:

    • Для аргумента str_arg_3:

      • Нажмите кнопку JS и введите выражение для чтения строкового параметра message из входящего вебхук-запроса. Входящий JSON-запрос от внешней системы автоматически передается в ctx.input:

        ctx.input.message
    • Остальные аргументы настройте по аналогии с примером ручного запуска.

  3. В блоке Политика запуска укажите:

    • Триггер — выберите тип триггера Вебхук.

    • Конфигурация токена, Тип запроса и Метод вызова — оставьте выбранные системой по умолчанию значения.

    • Бизнес-условие (опционально) — введите true или оставьте поле пустым. Результат будет один и тот же. Более подробно о назначении бизнес-условий описано в разделе Бизнес-условие.

    • Повторы запуска при ошибке — выберите стратегию Без повторов.

    • Поведение при наличии активного запуска — выберите стратегию Разрешить параллельный запуск. Это гарантирует, что вебхук сможет одновременно обрабатывать плотный поток входящих HTTP-запросов от внешних систем без их пропуска.

  4. Завершите создание автоматизации согласно разделу Общий порядок создания автоматизации.

Общие параметры поведения при ошибках и активных запусках

Для каждого сценария автоматизации в правом столбце доступны параметры контроля выполнения в блоке Политика запуска:

Повторы запуска при ошибке

Повторы запусков при ошибке применяются исключительно к скриптам и не распространяются на плейбуки.

В поле Повторы запуска при ошибке доступны два значения:

  • Без повторов — при возникновении ошибки в ходе выполнения скрипта запуск сразу переходит в статус FAILED, повторных попыток выполнения воркером не производится.

  • Постоянно — воркер будет бесконечно повторять выполнение скрипта с заданным интервалом времени до тех пор, пока скрипт не завершится успешно или администратор не отключит автоматизацию вручную.

Поведение при наличии активного запуска

Данный функционал определяет поведение платформы, если инициирован новый запуск автоматизации, в то время как предыдущий запуск по этому же триггеру еще не завершился:

  • Разрешить параллельный запуск — новый запуск добавляется в общую очередь и выполняется параллельно с уже активными и незавершенными запусками этой же автоматизации.

  • Пропустить запуск — новый запуск игнорируется и сразу переводится в статус SKIPPED с указанием причины пропуска в списке запусков автоматизации.

Была ли полезна эта страница?

Обратная связь