API в Managed Service for Apache Kafka®
В кластере доступно несколько видов API, позволяющих выполнять различные операции.
Облачные API
Этот набор API предоставляется Yandex Cloud и включает в себя REST API и gRPC API. Любой из этих API может использоваться, чтобы работать со следующими объектами:
- Кластерами Managed Service for Apache Kafka® и логами кластеров.
- Некоторыми сущностями Apache Kafka®: топиками, пользователями и коннекторами.
Использование
Чтобы получить доступ к этим API, не нужно никаких дополнительных действий — они доступны всегда. Для работы с этими API необходимо пройти аутентификацию при выполнении запросов к API.
Доступные операции определяются ролями аккаунта, от имени которого выполняются запросы к API.
Описания методов REST API и вызовов gRPC API приведены в справочнике API. Примеры запросов см. в пошаговых инструкциях.
Ограничения
С помощью этих API можно управлять только частью сущностей Apache Kafka®. Чтобы получить расширенные возможности по управлению сущностями Apache Kafka®, используйте Managed Service for Apache Kafka® REST API или Client API.
Managed Service for Apache Kafka® REST API
Этот набор REST API предоставляется Yandex Cloud и включает в себя:
-
REST API для Managed Schema Registry, совместимый с Confluent Schema Registry API версии 6.1 (с некоторыми ограничениями).
Этот API позволяет работать с управляемым реестром схем формата данных.
-
REST API для Apache Kafka®, совместимый с Confluent REST Proxy API версии 6.1 (с некоторыми ограничениями).
Этот API позволяет работать с производителями и потребителями, используя схемы формата данных из реестра, а также просматривать информацию о брокерах, топиках и разделах.
В кластерах Managed Service for Apache Kafka® используется продукт с открытым исходным кодом Karapace
Использование
Чтобы использовать любой из этих API:
-
Получите доступ к API.
По умолчанию Managed Schema Registry и оба REST API выключены и недоступны. Чтобы воспользоваться ими, укажите соответствующие настройки при создании или изменении кластера:
- Реестр схем данных. В кластере станут доступны Managed Schema Registry и соответствующий ему REST API.
- Kafka Rest API. В кластере станет доступен REST API для Apache Kafka®.
Хотя оба REST API предоставляются Karapace, они независимы друг от друга: например, можно использовать только Managed Schema Registry и его REST API, только REST API для Apache Kafka®, или все сразу.
-
Выполните все шаги по предварительной настройке для подключения к кластеру.
-
Пройдите аутентификацию при выполнении запросов к API.
Используется механизм HTTP Basic Authentication
: каждый запрос должен содержать в себе HTTP-заголовок Authorization с реквизитами пользователя Apache Kafka®, от имени которого выполняется запрос.
Доступные операции определяются ролями пользователя Apache Kafka®, от имени которого выполняются запросы к API:
-
REST API для Managed Schema Registry:
- Роль
ACCESS_ROLE_CONSUMER
: пользователю доступны операции чтения над субъектами, связанными с топиком, на который назначена роль. - Роль
ACCESS_ROLE_PRODUCER
: пользователю доступны любые операции над субъектами, связанными с топиком, на который назначена роль. - Роль
ACCESS_ROLE_ADMIN
: пользователю доступны любые операции над субъектами, связанными с любым топиком (эта роль назначается на все топики).
Перечень субъектов, с которыми можно работать, также определяется ролью пользователя. Подробнее о ролевой модели Managed Schema Registry см. в разделе Управление схемами данных.
- Роль
-
REST API для Apache Kafka®:
- Роль
ACCESS_ROLE_CONSUMER
: пользователь может получать информацию об объектах Apache Kafka®, а также работать с потребителями. - Роль
ACCESS_ROLE_ADMIN
илиACCESS_ROLE_PRODUCER
: пользователь может работать с объектами Apache Kafka® в полном объеме.
- Роль
Описания методов REST API для Managed Schema Registry
Ограничения
-
REST API для Managed Schema Registry:
Ограничено использование методов для управления режимом работы реестра
:- Просматривать информацию о режимах работы реестра может только пользователь с правами
ACCESS_ROLE_ADMIN
. - Нельзя изменить режим работы реестра.
- Просматривать информацию о режимах работы реестра может только пользователь с правами
-
REST API для Apache Kafka®:
- Нельзя управлять кластерами и другими объектами Apache Kafka®, кроме производителей и потребителей.
- Доступны только методы Confluent REST Proxy API
версии v2 .
Client API Apache Kafka®
Client API — общее название для набора нативных API Apache Kafka®:
- Producer API
— позволяет работать с производителями. - Consumer API
— позволяет работать с потребителями. - Streams API
— позволяет работать с потоками данных. - Connect API
— позволяет работать с коннекторами. - Admin API
— позволяет работать с объектами Apache Kafka®.
Эти API позволяют управлять объектами Apache Kafka® (с некоторыми ограничениями).
Использование
Чтобы использовать любой из этих API:
-
Выполните предварительную настройку для подключения к кластеру.
-
Встройте нужный API в код приложения-клиента Apache Kafka®.
Для работы с Client API необходимо вызывать нужные функции из кода приложений-клиентов — эти API не являются REST API.
-
Настройте в коде приложения-клиента нужный механизм аутентификации, чтобы взаимодействовать с API. При аутентификации используются реквизиты пользователя Apache Kafka®.
Механизмы аутентификации описаны в документации Confluent для приложений-клиентов
. Примеры настройки см. в разделе Примеры кода для подключения к кластеру Apache Kafka®.
Доступные операции определяются ролями пользователя Apache Kafka®, от имени которого выполняются запросы к Client API.
Описания Client API приведены в документации Apache Kafka®
Ограничения
-
Нельзя управлять кластерами и пользователями Apache Kafka®.
-
Можно управлять топиками с помощью Admin API, но со следующими ограничениями:
-
Для управления топиками используется пользователь-администратор с ролью
ACCESS_ROLE_ADMIN
, которая действует для всех топиков кластера. Если такого пользователя в кластере нет, создайте его. -
Права доступа пользователей для производителей и потребителей настраиваются с помощью стандартных интерфейсов Yandex Cloud, а не Admin API Apache Kafka®.
-