Поделиться через


Потоковая передача данных из облака Confluent cloud Kafka с помощью Azure Stream Analytics

В этой статье описывается, как подключить задание Azure Stream Analytics непосредственно к слиянию облачного kafka в качестве входных данных.

Необходимые компоненты

  • У вас есть кластер confluent cloud kafka.
  • У вас есть файл ключа API для кластера kafka, который содержит ключ API, используемый в качестве имени пользователя, секрет API для использования в качестве пароля и адреса сервера начальной загрузки.
  • У вас есть задание Azure Stream Analytics. Задание Azure Stream Analytics можно создать, следуя документации. Краткое руководство. Создание задания Stream Analytics с помощью портал Azure
  • Кластер confluent cloud kafka должен быть общедоступным, а не за брандмауэром или защищенным в виртуальной сети.
  • Тип метки времени для раздела кластера confluent cloud kafka должен быть LogAppendTime. Значением по умолчанию для раздела CreateTime является confluent cloud kafka.
  • У вас должно быть существующее хранилище ключей. Вы можете создать ресурс хранилища ключей, выполнив краткое руководство по созданию хранилища ключей с помощью портал Azure

Настройка Azure Stream Analytics для использования управляемого удостоверения

Azure Stream Analytics требует настройки управляемого удостоверения для доступа к хранилищу ключей. Задание stream analytics можно настроить для использования управляемого удостоверения, перейдя на вкладку "Управляемое удостоверение " слева в разделе "Настройка".

Снимок экрана: настройка управляемого удостоверения для задания ASA.

  1. Перейдите на вкладку Управляемое удостоверение в разделе Настройка.
  2. Выберите параметр "Переключить удостоверение " и выберите удостоверение, используемое с заданием: назначаемое системой удостоверение или удостоверение, назначаемое пользователем.
  3. Для удостоверения, назначаемого пользователем, выберите подписку, в которой находится удостоверение, назначаемое пользователем, и выберите имя удостоверения.
  4. Проверьте и сохраните.

Скачивание сертификата из LetsEncrypt

Azure Stream Analytics — это клиент на основе librdkafka, а для подключения к облаку требуется TLS-сертификаты, которые объединяют облачные ресурсы для проверки подлинности сервера. Confluent cloud использует сертификаты TLS из Let's Encrypt, открытый центр сертификации (ЦС).

Скачайте сертификат ISRG Root X1 в формате PEM на сайте LetsEncrypt.

Снимок экрана: сертификат для скачивания с веб-сайта, на котором можно зашифровать.

Настройка хранилища ключей с разрешениями

Azure Stream Analytics легко интегрируется с хранилищем ключей Azure для доступа к сохраненным секретам, необходимым для проверки подлинности и шифрования. Задание Azure Stream Analytics подключается к хранилищу ключей Azure с помощью управляемого удостоверения, чтобы обеспечить безопасное подключение и избежать кражи секретов. Чтобы использовать скачанный сертификат, сначала необходимо передать его в хранилище ключей.

Чтобы отправить сертификаты, необходимо иметь доступ к хранилищу ключей Администратор istrator. Выполните следующие действия, чтобы предоставить администратору доступ:

Примечание.

У вас должны быть разрешения "Владелец" для предоставления других разрешений хранилища ключей.

  1. В хранилище ключей выберите элемент управления доступом (IAM).

  2. Выберите Добавить>Добавить назначение ролей, чтобы открыть страницу Добавление назначения ролей.

  3. Назначьте роль с помощью следующей конфигурации:

Параметр Значение
Роль Администратор хранилища ключей
Назначить доступ для Пользователь, группа или субъект-служба
Участники <Сведения о вашей учетной записи или электронная почта>

Отправка сертификата в хранилище ключей в качестве секрета с помощью Azure CLI

Внимание

Для правильной работы этой команды необходимо иметь разрешения Key Vault Администратор istrator. Для отправки сертификатов в хранилище ключей необходимо использовать Azure CLI. Задание Azure Stream Analytics завершится ошибкой, когда срок действия сертификата, используемого для проверки подлинности. Чтобы устранить эту проблему, необходимо обновить или заменить сертификат в хранилище ключей и перезапустить задание Azure Stream Analytics.

Убедитесь, что вы настроили и установили Azure CLI локально с помощью PowerShell. Вы можете посетить эту страницу, чтобы получить рекомендации по настройке Azure CLI: начало работы с Azure CLI

Войдите в Azure CLI:

az login

Подключение в подписку, содержащую хранилище ключей:

az account set --subscription <subscription name>

Например:

az account set --subscription mymicrosoftsubscription

Следующая команда может отправить сертификат в качестве секрета в хранилище ключей:

Имя <your key vault> хранилища ключей, в которое нужно отправить сертификат. <name of the secret> — любое имя, которое вы хотите дать секрету и как оно отображается в хранилище ключей. <file path to certificate> — путь к расположению сертификата. Щелкните правой кнопкой мыши и скопируйте путь к сертификату.

az keyvault secret set --vault-name <your key vault> --name <name of the secret> --file <file path to certificate>

Например:

az keyvault secret set --vault-name mykeyvault --name confluentsecret --file C:\Users\Downloads\isrgrootx1.pem

Предоставление разрешений на задание Stream Analytics для доступа к сертификату в хранилище ключей

Чтобы задание Azure Stream Analytics читало секрет в хранилище ключей, задание должно иметь разрешение на доступ к хранилищу ключей. Чтобы предоставить специальные разрешения заданию Stream Analytics, выполните следующие действия.

  1. В хранилище ключей выберите элемент управления доступом (IAM).

  2. Выберите Добавить>Добавить назначение ролей, чтобы открыть страницу Добавление назначения ролей.

  3. Назначьте роль с помощью следующей конфигурации:

Параметр Значение
Роль Пользователь секретов хранилища ключей
Управляемое удостоверение Задание Stream Analytics для управляемого удостоверения, назначаемого системой, или управляемого удостоверения, назначаемого пользователем
Участники <Имя задания> Stream Analytics или <имя назначаемого пользователем удостоверения>

Настройка входных данных kafka в задании Stream Analytics

Внимание

Чтобы настроить кластер Kafka в качестве входных данных, тип метки времени входного раздела должен быть LogAppendTime. Единственный тип метки времени Azure Stream Analytics поддерживает LogAppendTime. Azure Stream Analytics поддерживает только числовый десятичный формат.

  1. В задании Stream Analytics выберите входные данные в разделе "Топология заданий"

  2. Выберите "Добавить входные данные>Kafka", чтобы открыть колонку "Новая конфигурация ввода" Kafka.

  3. Используйте следующую конфигурацию:

Примечание.

Для SASL_SSL и SASL_PLAINTEXT Azure Stream Analytics поддерживает только механизм PLAIN SASL.

Имя свойства Description
Псевдоним входных данных Понятное имя, используемое в запросах для ссылки на входные данные
Адреса сервера начальной загрузки Список пар узлов и портов для установления подключения к кластеру confluent cloud kafka. Пример: pkc-56d1g.eastus.azure.confluent.cloud:9092
Раздел Kafka Имя раздела kafka в кластере confluent cloud kafka.
Протокол безопасности Выберите SASL_SSL. Поддерживаемый механизм — PLAIN.
Идентификатор группы потребителей Имя группы потребителей Kafka, в которую входные данные должны быть частью. Он будет автоматически назначен, если он не указан.
Формат сериализации событий Формат сериализации (JSON, CSV, Avro, Parquet, Protobuf) входящего потока данных.

Внимание

Confluent Cloud поддерживает проверку подлинности с помощью ключей API, OAuth или единого входа SAML. Azure Stream Analytics не поддерживает проверку подлинности с помощью OAuth или единого входа SAML. Вы можете подключиться к облаку confluent с помощью ключа API, имеющего доступ на уровне раздела с помощью протокола безопасности SASL_SSL. Чтобы выполнить проверку подлинности в облаке confluent cloud, необходимо использовать SASL_SSL и настроить задание для проверки подлинности в облаке с помощью ключа API.

Используйте следующую конфигурацию:

Параметр Значение
Username ключ облачного API confluent
Пароль Секрет облачного API confluent
Имя хранилища ключей Имя хранилища ключей Azure с отправленным сертификатом
Сертификаты Truststore имя секрета Key Vault, который содержит сертификат ISRG Root X1

Снимок экрана: настройка входных данных kafka для задания Stream Analytics.

Сохранение конфигурации и тестового подключения

Сохраните конфигурацию. Задание Azure Stream Analytics проверяется с помощью предоставленной конфигурации. Успешное подключение отображается на портале, если stream analytics может подключиться к кластеру kafka.

Снимок экрана: входные данные kafka для успешного тестирования подключения.

Ограничения

  • Сертификат, отправленный в хранилище ключей, должен иметь формат PEM.
  • Минимальная версия kafka должна быть версии 0.10.
  • Azure Stream Analytics не поддерживает проверку подлинности для слияния облака с помощью OAuth или единого входа SAML. Ключ API необходимо использовать через протокол SASL_SSL.
  • Для отправки сертификата в хранилище ключей необходимо использовать Azure CLI. Вы не можете отправлять сертификаты с несколькими строками секретов в хранилище ключей с помощью портал Azure.

Примечание.

Чтобы получить прямую справку по использованию входных данных Azure Stream Analytics Kafka, обратитесь к askasa@microsoft.com.

Следующие шаги