Создание новых конфигураций обработчиков#

Предусловия#

Не требуются.

Последовательность выполнения#

Данный сценарий выполняется пользователем, создающим *.conf-файл для загрузки в потоковой обработчик (находится вне ролевой модели, является инициатором создания интеграции).

Конфигурация потокового обработчика событий состоит из одного файла *.conf, описывающего ход выполнения обработки событий, и одного или нескольких файлов *.tr, описывающих шаги обработки событий.

Более подробно формирование conf и tr файлов описано в разделах Построение потока обработки и DSL функции.

Формирование файла *.conf#

Файл *.conf обязательно должен содержать следующие секции:

  • наименование потока и перечень источников:

  flow: {
    name: "<наименование>"
    source: [${<наименование источника 1>},${<наименование источника n>}]
  }
  • определение источника:

  <наименование источника>: {
    name: "<описание источника в формате <Домен>_<topic>_<Поток>>"
    type: "source"
    topic: "<наименование topic>"
    config: ${<ссылка на конфигурацию транспорта из defaults.json>} {
      "consumer": {
        "group.id": "<consumer group, с которой производится подключение>"
      }
    }
    destination: ${<наименование следующего шага обработки>}
  }
  • определение выходной точки:

  <наименование выходной точки>: {
    name: "<описание выходной точки>"
    type: "destination"
    topic: "<наименование topic>"
    config: ${<ссылка на конфигурацию транспорта из defaults.json>}
  }
  • определение шагов преобразований (дополнительная секция):

  <наименование шага преобразования>: {
    name: "<описание шага преобразования>"
    type: "dsl"
    format: {
      input: "<указание входного формата xml/json>"
      output: "<указание выходного формата xml/json>"
    }

    dsl: {
      source: "file"
      path: "путь до tr файла, описывающего преобразования"
    }
    destination: ${<наименование следующего шага обработки>}
  }

Формирование файла *.tr#

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

Примеры преобразований, которые могут быть выполнены над потоком событий:

  • копирование заголовков:

  headers.kafka = Environment.kafka.headers
  • копирование тела сообщения:

  OUT = IN
  • передача на выход тела сообщения, полученного на вход:

  return("passthrough")
  • журналирование:

  INFO(<текст>, <идентификатор события>, <источник события>, <получатель события>)

Правила эксплуатации#

Не требуется.

Результат#

Создание новых конфигураций обработчиков выполнено.