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

Service to Service

Ресурс Service to Service представляет собой введенную нами абстракцию, позволяющая описывать правила между сервисами, которые открывают доступ одновременно с двух сторон.

Более подробную документацию по API можно посмотреть здесь.
Более подробно по организации БД можно посмотреть здесь.

Входные параметры

  • serviceRules.rules[] - Список описываемых правил.
  • serviceRules.rules[].name - Имя правила.
  • serviceRules.rules[].svcFrom - Имя сервиса откуда уходит трафик
  • serviceRules.rules[].svcTo - Имя сервиса куда уходит трафик
  • serviceRules.rules[].logs - Включить/отключить логирование.
  • serviceRules.rules[].trace - Включить/отключить трассировку.
  • serviceRules.rules[].action - Действие для пакетов в сформированных правил в цепочке.
  • serviceRules.rules[].priority - Структура, содержащая описание порядка применения правил в цепочке.
  • serviceRules.rules[].priority.some - Поле, определяющее порядок применения правил в цепочке.
  • syncOp - Поле определяющее действие с данными из запроса.
названиеобязательностьтип данныхзначение по умолчанию
serviceRules.rules[]даObject[]
serviceRules.rules[].nameдаString
serviceRules.rules[].svcFromдаString
serviceRules.rules[].svcToдаString
serviceRules.rules[].logsнетBooleanfalse
serviceRules.rules[].traceнетBooleanfalse
serviceRules.rules[].actionдаEnum("ACCEPT", "DROP")
serviceRules.rules[].priorityнетObject-350
serviceRules.rules[].priority.someнетInteger | String-350
syncOpдаEnum("Delete", "Upsert", "FullSync")

Ограничения

  • serviceRules.rules[].svcFrom:

    • Длина значения не должна превышать 256 символов.
    • Значение должно начинаться и заканчиваться символами без пробелов.
    • Значение не может быть пустой строкой
    • Возможно указать только существующий Service.
  • serviceRules.rules[].svcTo:

    • Длина значения не должна превышать 256 символов.
    • Значение должно начинаться и заканчиваться символами без пробелов.
    • Значение не может быть пустой строкой
    • Возможно указать только существующий Service.
  • serviceRules.rules[].priority.some:

    • Значения должны находиться в интервале от -32768 до 32767
    • Принимает значения (число) в виде string || integer

Пример использования

curl '127.0.0.1:9007/v2/sync' \
--header 'Content-Type: application/json' \
--data '{
"serviceRules": {
"rules": [
{
"name": "rule-svc-svc",
"action": "DROP",
"logs": true,
"priority": {
"some": -32768
},
"svcFrom": "svc-0",
"svcTo": "svc-1",
"trace": true
}
]
},
"syncOp": "Upsert"
}'

Выходные параметры

названиетип данныхописание
-Objectв случае успеха возвращается пустое тело

Возможные ошибки API

Пользователь указал некорректные значения агрументов
  • HTTP code: 400
  • gRPC code: INVALID_ARGUMENT
  • gRPC number: 3
Не найден метод
  • HTTP code: 404
  • gRPC code: NOT_FOUND
  • gRPC number: 5
Ошибка в указанных данных
  • HTTP code: 500
  • gRPC code: INTERNAL
  • gRPC number: 13

Диаграмма последовательности