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


Потоковая передача данных из Azure Stream Analytics в облако confluent

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

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

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

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

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

Screenshot showing how to configure managed identity for an ASA job.

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

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

Выходные данные kafka stream analytics — это клиент на основе librdkafka. Чтобы выходные данные подключались к облаку, вам потребуются сертификаты TLS, которые объединяют облачные ресурсы для проверки подлинности сервера. Confluent cloud использует сертификаты TLS из Let's Encrypt, открытый центр сертификации (ЦС).

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

Screenshot showing the certificate to download from the website of lets encrypt.

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

Azure Stream Analytics легко интегрируется с хранилищем ключей Azure для доступа к сохраненным секретам, необходимым для проверки подлинности и шифрования при использовании MTLS или протоколов безопасности SASL_SSL. Задание 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

  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.
Формат сериализации событий Формат сериализации (JSON, CSV, Avro, Parquet, Protobuf) входящего потока данных.
Ключ раздела Azure Stream Analytics назначает секции с помощью циклического секционирования. Сохраните пустое значение, если ключ не секционирование входных данных
Тип сжатия событий Kafka Тип сжатия, используемый для исходящих потоков данных, таких как Gzip, Snappy, Lz4, Zstd или None.

Важно!

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

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

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

Screenshot showing how to configure kafka output for a stream analytics job.

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

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

Screenshot showing successful test connection to confluent kafka output.

Ограничения

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

Примечание.

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

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