Запуск адаптера EVTA под формат CloudEvent#

Данный раздел применим для роли Администратор.

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

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

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

Используются следующие аргументы запуска:

  • -c, --config <arg> — путь до конфигурационного файла.

Формат конфигурационного файла#

В конфигурационном файле указываются настройки для подключения к контрольной панели:

  • controlPlane — параметры подключения к контрольной панели:

    • host — хост, на котором запущена контрольная панель;

    • port — порт, на котором запущена контрольная панель;

    • ssl.keystore.location (и прочие настройки для ssl) — настройки для защищенного подключения;

    • bufferSize — размер буфера сообщений в очереди, используемой для обмена с контрольной панелью (по умолчанию 1000).

Пример конфигурационного файла:

{
  "controlPlane": {
    "host": "localhost",
    "port": 12345
  }
}

Запуск адаптера EVTA контрольной панелью#

syntax = "proto3";

package ru.sbt.ss.event.adapter;

import "spec.proto";

option java_multiple_files = true;
option java_package = "ru.sbt.ss.event";
option java_outer_classname = "ControlPlaneServiceApi";

service ControlPlaneService {
  rpc StreamEvents (stream io.cloudevents.v1.CloudEvent) returns (stream io.cloudevents.v1.CloudEvent) {
  }
}

1. CloudEvent с типом ru.sbertech.platformv.synapse.esb.shared.connect

При старте адаптер отправляет CloudEvent с типом ru.sbertech.platformv.synapse.esb.shared.connect.

2. CloudEvent с типом ru.sbertech.platformv.synapse.esb.shared.config

При получении CloudEvent с типом ru.sbertech.platformv.synapse.esb.shared.config в зависимости от атрибута changeType:

  1. Если changeType равен create, то адаптер EVTA ожидает полную конфигурацию в данных CloudEvent.

  2. Если changeType равен update, то адаптер EVTA ожидает блоки с измененными данными (поддерживаются transport, message и webhook).

  3. Если changeType равен delete, то адаптер ожидает блоки с измененными данными (поддерживаются transport, message и webhook).

Для атрибута changeType (значения create и update) формат данных представлен в таблице:

Ключ

Значение

transport

Список параметров с настройками транспорта

transport: type

Тип транспорта

message

Cписок параметров с настройками для сообщений

message: transport

Имя используемого транспорта (ключ для получения параметров берется из блока transport)

message: topic

Имя используемого топика

message: members

Массив с разрешенными операциями для данного сообщения

message: members: memberId

Идентификатор клиента

message: members: protocols

Массив разрешенных протоколов (поддерживаемые: rest,grpc)

message: members: actions

Массив разрешенных действий (поддерживаемые: publish,subscribe, commit)

message: schemas

Список схем для валидации сообщения по схеме

webhook

Настройки для вебхуков, используется для rest (имя объекта: адрес для запроса; сам объект: настройки ssl при необходимости)

server

Настройки серверной части адаптера EVTA

server: type

Тип запускаемого адаптера EVTA: rest, grpc или replication (режим перекладчика). По умолчанию rest

server: host

Хост, на котором запускается адаптер EVTA (по умолчанию 0.0.0.0)

server: port

Порт, на котором запускается адаптер EVTA (по умолчанию 8080)

server: pekko

Настройки pekko (если есть префикс «file», то берется содержимое файла по пути после префикса)

server: membersCheck

Проверка вызовов на вхождение в блок members

server: checkDn

Проверка вызовов на вхождение в блок members будет осуществляться по сертификату, иначе берется заголовок (по умолчанию false)

server: broadcastSubscribe

Тип подписки для grpc адаптера EVTA (по умолчанию false)

server: timeout

Общий тайм-аут на блокирующие операции

server: replication

Настройки транспорта (используются в режиме replication)

server: replication: source

Имя транспорта, из которого будут вычитываться сообщения (ключ для получения параметров берется из блока transport)

server: replication: source: destination

Имя транспорта, в который будут записываться сообщения (ключ для получения параметров берется из блока transport)

webhooks

Вебхуки для запуска на старте адаптера EVTA (имя объекта: имя вебхука)

webhooks: webhookName

Имя вебхука

webhooks: webhookName: url

Адрес, куда будут отправляться сообщения. Так же по этому ключу берутся настройки из блока webhook

webhooks: webhookName: messageName

Транспорт, из которого вычитываются сообщения. Так же по этому ключу берутся настройки из блока message

3. CloudEvent с типом ru.sbertech.platformv.synapse.esb.shared.config.apply

При применении конфигурации адаптер отправляет CloudEvent с типом ru.sbertech.platformv.synapse.esb.shared.config.apply.

4. CloudEvent с типом ru.sbertech.platformv.synapse.esb.shared.error

При ошибках адаптер отправляет CloudEvent с типом ru.sbertech.platformv.synapse.esb.shared.error. Формат данных представлен в таблице:

Ключ

Значение

errorMessage

Текст ошибки

5. CloudEvent с типом ru.sbertech.platformv.synapse.esb.shared.webhook

При добавлении вебхука через rest адаптер отправляет CloudEvent с типом ru.sbertech.platformv.synapse.esb.shared.webhook. Формат данных представлен в таблице:

Ключ

Значение

webhookName

Имя созданного вебхука

url

Адрес, куда будут отправляться сообщения

messageName

Транспорт, из которого вычитываются сообщения

6. CloudEvent с типом ru.sbertech.platformv.synapse.esb.shared.webhook.delete

При удалении вебхука через rest адаптер отправляет CloudEvent с типом ru.sbertech.platformv.synapse.esb.shared.webhook.delete. Формат данных представлен в таблице:

Ключ

Значение

webhookName

Имя удаленного вебхука

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

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

Результат#

Запуск адаптера EVTA под формат CloudEvent произведен.