Настройка конечных точек потока данных MQTT
Внимание
Предварительная версия операций Интернета вещей Azure, включенная Azure Arc в настоящее время в предварительной версии. Не следует использовать это программное обеспечение предварительной версии в рабочих средах.
Вам потребуется развернуть новую установку Операций Интернета вещей Azure, когда общедоступная версия станет доступной. Вы не сможете обновить предварительную установку.
Юридические условия, применимые к функциям Azure, которые находятся в бета-версии, предварительной версии или в противном случае еще не выпущены в общедоступную версию, см . в дополнительных условиях использования для предварительных версий Microsoft Azure.
Конечные точки потока данных MQTT используются для источников и назначений MQTT. Параметры конечной точки, tls, аутентификация и другие параметры можно настроить.
Необходимые компоненты
- Экземпляр предварительной версии операций Интернета вещей Azure
- Настроенный профиль потока данных
Локальный брокер MQTT операций Интернета вещей Azure
Операции Интернета вещей Azure предоставляют встроенный локальный брокер MQTT, который можно использовать с потоками данных. Брокер MQTT можно использовать в качестве источника для получения сообщений от других систем или в качестве назначения для отправки сообщений в другие системы.
Конечная точка по умолчанию
При развертывании операций Интернета вещей Azure создается конечная точка потока данных брокера MQTT с именем default с параметрами по умолчанию. Эту конечную точку можно использовать в качестве источника или назначения для потоков данных.
Внимание
Конечная точка по умолчанию всегда должна использоваться в качестве источника или назначения в каждом потоке данных. Дополнительные сведения см. в статье "Потоки данных" должны использовать локальную конечную точку брокера MQTT.
Конечная точка по умолчанию использует следующие параметры:
- Узел:
aio-broker:18883
через прослушиватель брокера MQTT по умолчанию - Проверка подлинности: маркер учетной записи службы (SAT) через ресурс BrokerAuthentication по умолчанию
- TLS: включено
- Доверенный сертификат ЦС: сертификат
azure-iot-operations-aio-ca-trust-bundle
ЦС по умолчанию из корневого ЦС по умолчанию
Внимание
Не удаляйте конечную точку по умолчанию. Если удалить конечную точку по умолчанию, необходимо повторно создать ее с теми же параметрами.
Чтобы просмотреть или изменить параметры конечной точки брокера MQTT по умолчанию, выполните следующие действия.
Создание новой конечной точки
Вы также можете создать новые локальные конечные точки брокера MQTT с пользовательскими параметрами. Например, можно создать новую конечную точку брокера MQTT с помощью другого порта, проверки подлинности или авторизации. Однако всегда следует использовать конечную точку по умолчанию в качестве источника или назначения в каждом потоке данных, даже если вы создаете новые конечные точки.
В интерфейсе операций выберите конечные точки потока данных.
В разделе "Создание новой конечной точки потока данных" выберите Azure IoT Operations Local MQTT>New.
Введите следующие параметры для конечной точки:
Параметр Description Имя. Имя конечной точки потока данных. Хост Имя узла и порт брокера MQTT. Использование формата <hostname>:<port>
Authentication method Метод, используемый для проверки подлинности. Выбор маркера учетной записи службы или сертификата X509 Аудитория служб Аудитория маркера учетной записи службы. Требуется, если используется маркер учетной записи службы. Сертификат клиента X509 Сертификат клиента X.509, используемый для проверки подлинности. Требуется, если используется сертификат X509. Ключ клиента X509 Закрытый ключ, соответствующий сертификату клиента X.509. Требуется, если используется сертификат X509. Промежуточные сертификаты X509 Промежуточные сертификаты для цепочки сертификатов клиента X.509. Требуется, если используется сертификат X509.
Сетку событий Azure
Сетка событий Azure предоставляет полностью управляемый брокер MQTT, который работает с потоками данных Операций Интернета вещей Azure. Чтобы настроить конечную точку брокера MQTT Сетка событий Azure, рекомендуется использовать управляемое удостоверение для проверки подлинности.
Настройка пространства имен Сетки событий
Если вы этого еще не сделали, сначала создайте пространство имен Сетки событий.
Включение MQTT
Когда у вас есть пространство имен Сетки событий, перейдите к разделу "Конфигурация " и проверьте:
- Включите MQTT: установите флажок.
- Максимальное количество сеансов клиента на имя проверки подлинности: установлено значение 3 или более.
Параметр максимального числа клиентских сеансов важен, чтобы потоки данных могли масштабироваться и по-прежнему иметь возможность подключения. Дополнительные сведения см. в статье "Поддержка многосеансовой службы "Сетка событий MQTT".
Создание пространства разделов
Чтобы потоки данных отправляли или получали сообщения в брокер MQTT сетки событий, необходимо создать по крайней мере одно пространство тем в пространстве имен Сетки событий. Вы можете создать пространство тем в пространстве имен Сетки событий, выбрав >раздел "Новые пространства тем".
Чтобы быстро приступить к тестированию, можно создать пространство тем #
с подстановочными знаками в качестве шаблона раздела.
Назначение разрешения управляемому удостоверению
Теперь, когда пространство тем создается, необходимо назначить управляемое удостоверение расширения Azure IoT Operations Arc пространству имен сетки событий или пространству тем.
В портал Azure перейдите в кластер Kubernetes, подключенный к Arc, и выберите "Расширения параметров>". В списке расширений найдите имя расширения Операций Интернета вещей Azure. Скопируйте имя расширения.
Затем перейдите к элементу управления доступом к пространству >имен сетки событий (IAM)>Добавить назначение ролей. Назначьте управляемое удостоверение расширения Azure IoT Operations Arc с соответствующей ролью, например EventGrid TopicSpaces Publisher
или EventGrid TopicSpaces Subscriber
. Это дает управляемому удостоверению необходимые разрешения для отправки или получения сообщений для всех пространств тем в пространстве имен.
Кроме того, можно назначить роль на уровне пространства тем. Перейдите к разделу >управления доступом (IAM)>Добавить назначение ролей. Назначьте управляемое удостоверение расширения Azure IoT Operations Arc с соответствующей ролью, например EventGrid TopicSpaces Publisher
или EventGrid TopicSpaces Subscriber
. Это дает управляемому удостоверению необходимые разрешения для отправки или получения сообщений для определенного пространства тем.
Создание конечной точки потока данных
После настройки пространства имен Сетки событий можно создать конечную точку потока данных для брокера MQTT сетки событий.
В интерфейсе операций выберите вкладку конечных точек потока данных.
В разделе "Создание новой конечной точки потока данных" выберите Сетка событий Azure MQTT>New.
Введите следующие параметры для конечной точки:
Параметр Description Имя. Имя конечной точки потока данных. Хост Имя узла и порт брокера MQTT сетки событий. Использование формата <NAMESPACE>.<REGION>-1.ts.eventgrid.azure.net:8883
Authentication method Метод, используемый для проверки подлинности. Выбор управляемого удостоверения, назначаемого системой Нажмите кнопку "Применить" , чтобы подготовить конечную точку.
После создания конечной точки его можно использовать в потоке данных для подключения к брокеру MQTT сетки событий в качестве источника или назначения. Разделы MQTT настраиваются в потоке данных.
Использование проверки подлинности сертификата X.509 с сеткой событий
Мы рекомендуем использовать управляемое удостоверение для проверки подлинности. Вы также можете использовать проверку подлинности сертификата X.509 с брокером MQTT Сетки событий.
При использовании проверки подлинности X.509 с брокером MQTT сетки событий перейдите в конфигурацию пространства >имен Сетки событий и проверьте следующие параметры:
- Включите MQTT: установите флажок.
- Включите альтернативные источники имен проверки подлинности клиента: установите флажок.
- Имя субъекта сертификата: выберите этот параметр в раскрывающемся списке.
- Максимальное количество сеансов клиента на имя проверки подлинности: установлено значение 3 или более.
Альтернативные параметры проверки подлинности клиента и максимальные параметры сеансов клиента позволяют потокам данных использовать имя субъекта сертификата клиента для проверки подлинности вместо MQTT CONNECT Username
проверки подлинности. Эта возможность важна, чтобы потоки данных могли создавать несколько экземпляров и по-прежнему подключаться. Дополнительные сведения см. в статье "Проверка подлинности сертификата клиента MQTT в Сетке событий" и поддержка нескольких сеансов.
Затем выполните действия, описанные в сертификате X.509, чтобы настроить конечную точку с параметрами сертификата X.509.
Ограничение общей подписки сетки событий
Сетка событий Azure брокер MQTT не поддерживает общие подписки, что означает, что нельзя задать instanceCount
значение больше, чем 1
в профиле потока данных, если сетка событий используется в качестве источника (где поток данных подписывается на сообщения) для потока данных. В этом случае, если задано instanceCount
1
больше, поток данных не запускается.
Пользовательские брокеры MQTT
Для других брокеров MQTT можно настроить конечную точку, TLS, проверку подлинности и другие параметры по мере необходимости.
В интерфейсе операций выберите вкладку конечных точек потока данных.
В разделе "Создание новой конечной точки потока данных" выберите "Создать настраиваемый брокер>MQTT".
Введите следующие параметры для конечной точки:
Параметр Description Имя. Имя конечной точки потока данных Хост Имя узла конечной точки брокера MQTT в формате <hostname>.<port>
.Authentication method Метод, используемый для проверки подлинности. Выберите управляемое удостоверение, назначаемое системой, назначенное пользователем управляемое удостоверение или маркер учетной записи службы. Аудитория служб Аудитория маркера учетной записи службы. Требуется, если используется маркер учетной записи службы. Client ID Идентификатор клиента управляемого удостоверения, назначаемого пользователем. Обязательно, если используется управляемое удостоверение, назначаемое пользователем. Идентификатор клиента Идентификатор клиента управляемого удостоверения, назначаемого пользователем. Обязательно, если используется управляемое удостоверение, назначаемое пользователем. Имя секрета маркера доступа Имя секрета Kubernetes, содержащего маркер SAS. Требуется, если используется маркер доступа. Нажмите кнопку "Применить" , чтобы подготовить конечную точку.
Чтобы настроить параметры конечной точки MQTT, дополнительные сведения см. в следующих разделах.
Доступные методы проверки подлинности
Для конечных точек потока данных брокера MQTT доступны следующие методы проверки подлинности. Дополнительные сведения о включении безопасных параметров путем настройки Azure Key Vault и включения удостоверений рабочих нагрузок см. в статье "Включение безопасных параметров в развертывании Azure IoT Operations Preview".
Сертификат X.509
Многие брокеры MQTT, такие как Сетка событий, поддерживают проверку подлинности X.509. Потоки данных могут представлять сертификат X.509 клиента и согласовывать связь TLS.
На странице параметров конечной точки потока данных для операций выберите вкладку "Базовый" и выберите сертификат X509 метода>проверки подлинности.
Введите следующие параметры для конечной точки:
Параметр | Description |
---|---|
Сертификат клиента X509 | Сертификат клиента X.509, используемый для проверки подлинности. |
Промежуточные сертификаты X509 | Промежуточные сертификаты для цепочки сертификатов клиента X.509. |
Ключ клиента X509 | Закрытый ключ, соответствующий сертификату клиента X.509. |
Управляемое удостоверение, назначаемое системой
Чтобы использовать назначаемое системой управляемое удостоверение для проверки подлинности, вам не нужно создавать секрет. Управляемое удостоверение, назначаемое системой, используется для проверки подлинности с помощью брокера MQTT.
Перед настройкой конечной точки убедитесь, что управляемое удостоверение Операций Интернета вещей Azure имеет необходимые разрешения для подключения к брокеру MQTT.
- В портал Azure перейдите к экземпляру Операций Интернета вещей Azure и выберите "Обзор".
- Скопируйте имя расширения, указанного после расширения Azure IoT Operations Arc. Например, azure-iot-operations-xxxx7.
- Найдите управляемое удостоверение в портал Azure с помощью имени расширения. Например, выполните поиск azure-iot-operations-xxxx7.
- Назначьте роль управляемому удостоверению расширения Azure IoT Operations Arc, которое предоставляет разрешение на подключение к брокеру MQTT. Например, с помощью брокера MQTT Сетка событий Azure назначьте управляемое удостоверение пространству имен сетки событий или пространству разделов с соответствующей ролью.
- Настройте конечную точку с параметрами управляемого удостоверения, назначаемого системой.
На странице параметров конечной точки потока данных для операций выберите вкладку "Базовый", а затем выберите управляемое удостоверение, назначенное системой проверки подлинности>.
В большинстве случаев при использовании с сеткой событий можно оставить параметры пустыми, как показано ниже. Это задает аудиторию управляемого удостоверения для общей аудитории https://eventgrid.azure.net
Сетки событий. Если необходимо задать другую аудиторию, ее можно указать в параметрах.
Не поддерживается.
Управляемое удостоверение, назначаемое пользователем
Чтобы использовать управляемое пользователем удостоверение для проверки подлинности, необходимо сначала развернуть операции Интернета вещей Azure с включенными безопасными параметрами. Дополнительные сведения см. в статье "Включение безопасных параметров в развертывании Azure IoT Operations Preview".
Затем укажите метод проверки подлинности управляемого удостоверения, назначаемый пользователем, а также идентификатор клиента и идентификатор клиента управляемого удостоверения.
На странице параметров конечной точки потока данных для операций выберите вкладку "Базовый" и выберите метод проверки подлинности>, назначенный пользователем.
Здесь область является необязательной и по умолчанию https://eventgrid.azure.net/.default
используется для всех Сетка событий Azure пространств имен. Если необходимо задать другую область, ее можно указать в параметрах с помощью Bicep или Kubernetes.
Токен учетной записи службы Kubernetes (SAT)
Чтобы использовать маркер учетной записи службы Kubernetes (SAT) для проверки подлинности, вам не нужно создавать секрет. SAT используется для проверки подлинности с помощью брокера MQTT путем сопоставления аудитории.
На странице параметров конечной точки потока данных для операций выберите вкладку "Базовый" и выберите маркер учетной записи службы проверки подлинности.>
Введите аудиторию службы.
Анонимные
Чтобы использовать анонимную проверку подлинности, задайте для метода проверки подлинности значение Anonymous
.
Пока не поддерживается в интерфейсе операций. См. раздел Известные проблемы.
Расширенные настройки
Дополнительные параметры для конечной точки потока данных брокера MQTT, например TLS, доверенного сертификата ЦС, параметров обмена сообщениями MQTT и CloudEvents. Эти параметры можно задать на вкладке "Расширенный портал потока данных" в пользовательском ресурсе конечной точки потока данных.
В интерфейсе операций выберите вкладку "Дополнительно " для конечной точки потока данных.
Параметры протокола TLS
Режим TLS
Чтобы включить или отключить TLS для конечной точки Kafka, обновите mode
параметр в параметрах TLS.
На странице параметров конечной точки потока данных для операций выберите вкладку "Дополнительно ", а затем установите флажок рядом с режимом TLS.
Для режима TLS можно задать Enabled
или Disabled
. Если задан Enabled
режим, поток данных использует безопасное подключение к брокеру Kafka. Если задан Disabled
режим, поток данных использует небезопасное подключение к брокеру Kafka.
Сертификат доверенного ЦС
Настройте доверенный сертификат ЦС для конечной точки MQTT, чтобы установить безопасное подключение к брокеру MQTT. Этот параметр важен, если брокер MQTT использует самозаверяющий сертификат или сертификат, подписанный пользовательским ЦС, который по умолчанию не является доверенным.
На странице параметров конечной точки потока данных для операций выберите вкладку "Дополнительно ", а затем используйте поле карты конфигурации сертификата доверенного ЦС, чтобы указать ConfigMap, содержащий сертификат доверенного ЦС.
Этот ConfigMap должен содержать сертификат ЦС в формате PEM. ConfigMap должен находиться в том же пространстве имен, что и ресурс потока данных MQTT. Например:
kubectl create configmap client-ca-configmap --from-file root_ca.crt -n azure-iot-operations
Совет
При подключении к брокеру MQTT сетки событий сертификат ЦС не требуется, так как служба Центров событий использует сертификат, подписанный общедоступным ЦС, доверенным по умолчанию.
Префикс идентификатора клиента
Вы можете задать префикс идентификатора клиента для клиента MQTT. Идентификатор клиента создается путем добавления имени экземпляра потока данных в префикс.
Внимание
Большинство приложений не должны изменять префикс идентификатора клиента. Не изменяйте это после первоначального развертывания операций Интернета вещей. Изменение префикса идентификатора клиента после развертывания может привести к потере данных.
На странице параметров конечной точки потока данных для операций выберите вкладку "Дополнительно ", а затем используйте поле префикса идентификатора клиента, чтобы указать префикс .
Качество обслуживания
Уровень качества обслуживания (QoS) можно задать для сообщений MQTT 1 или 0. Значение по умолчанию — 1.
На странице параметров конечной точки потока данных для операций выберите вкладку "Дополнительно ", а затем используйте поле "Качество обслуживания" (QoS), чтобы указать уровень качества обслуживания.
Сохранять
retain
Используйте параметр, чтобы указать, должен ли поток данных хранить флаг хранения в сообщениях MQTT. Значение по умолчанию — Keep
.
Задайте для этого поля Keep
значение, чтобы убедиться, что удаленный брокер содержит те же сообщения, что и локальный брокер, что может быть важно для сценариев единого пространства имен (UNS).
Если задано значение Never
, флаг сохранения удаляется из сообщений MQTT. Это может быть полезно, если вы не хотите, чтобы удаленный брокер сохранял сообщения или если удаленный брокер не поддерживает сохранение.
Чтобы настроить параметры хранения, выполните следующие действия.
На странице параметров конечной точки потока данных для операций выберите вкладку "Дополнительно ", а затем используйте поле "Сохранить ", чтобы указать параметр сохранения.
Параметр сохранения действует только в том случае, если поток данных использует конечную точку MQTT как источник, так и назначение. Например, в сценарии моста MQTT.
Внимание
Сетка событий Azure брокер MQTT в настоящее время не поддерживает флаг хранения. Это означает, что если для конечной точки брокера MQTT сетки событий задан флаг Keep
хранения, а в качестве назначения они используются, сообщения отклоняются. Чтобы избежать этого, задайте флаг Never
сохранения при использовании брокера MQTT Сетки событий в качестве назначения.
Срок действия сеанса
Интервал истечения срока действия сеанса можно задать для клиента MQTT потока данных. Интервал истечения срока действия сеанса — это максимальное время, которое поддерживается сеансом MQTT, если клиент потока данных отключается. Значение по умолчанию — 3600 секунд. Чтобы настроить интервал истечения срока действия сеанса, выполните следующие действия.
На странице параметров конечной точки потока данных для операций выберите вкладку "Дополнительно ", а затем используйте поле "Срок действия сеанса ", чтобы указать интервал истечения срока действия сеанса.
Протокол MQTT или WebSockets
По умолчанию WebSockets не включен. Чтобы использовать MQTT через WebSockets, задайте protocol
для поля значение WebSockets
.
На странице параметров конечной точки потока данных для операций выберите вкладку "Дополнительно ", а затем используйте поле "Протокол " для указания протокола.
Максимальное количество сообщений в полете
Можно задать максимальное количество сообщений в полете, которые может иметь клиент MQTT потока данных. Значение по умолчанию равно 100.
На странице параметров конечной точки потока данных для операций выберите вкладку "Дополнительно ", а затем используйте поле "Максимальное количество сообщений в полете", чтобы указать максимальное количество сообщений в полете.
Для подписки, когда конечная точка MQTT используется в качестве источника, это максимальное значение получения. Для публикации, когда конечная точка MQTT используется в качестве назначения, это максимальное количество сообщений, отправляемых перед ожиданием подтверждения.
Проверка активности
Вы можете задать интервал сохранения активности для клиента MQTT потока данных. Интервал поддержания активности — это максимальное время, когда клиент потока данных может быть неактивен перед отправкой сообщения PINGREQ брокеру. Значение по умолчанию ― 60 секунд.
На странице параметров конечной точки потока данных для операций выберите вкладку "Дополнительно ", а затем используйте поле "Сохранить жизнь ", чтобы указать интервал сохранения активности.
Источники облачных
CloudEvents — это способ описания данных событий распространенным способом. Параметры CloudEvents используются для отправки или получения сообщений в формате CloudEvents. Вы можете использовать CloudEvents для архитектур на основе событий, где разные службы должны взаимодействовать друг с другом в одном или разных поставщиках облачных служб.
Параметры CloudEventAttributes
илиPropagate
CreateOrRemap
. Чтобы настроить параметры CloudEvents, выполните следующие действия.
На странице параметров конечной точки потока данных для операций выберите вкладку "Дополнительно ", а затем используйте поле атрибутов событий Cloud Для указания параметра CloudEvents.
В следующих разделах содержатся дополнительные сведения о параметрах CloudEvents.
Параметр распространения
Свойства CloudEvent передаются для сообщений, содержащих необходимые свойства. Если сообщение не содержит необходимых свойств, сообщение передается как есть.
имени | Обязательное поле | Пример значения | Выходное значение |
---|---|---|---|
specversion |
Да | 1.0 |
Передается как |
type |
Да | ms.aio.telemetry |
Передается как |
source |
Да | aio://mycluster/myoven |
Передается как |
id |
Да | A234-1234-1234 |
Передается как |
subject |
No | aio/myoven/telemetry/temperature |
Передается как |
time |
No | 2018-04-05T17:31:00Z |
Передается как есть. Это не отдохнулось. |
datacontenttype |
No | application/json |
Изменен на тип содержимого выходных данных после необязательного этапа преобразования. |
dataschema |
No | sr://fabrikam-schemas/123123123234234234234234#1.0.0 |
Если в конфигурации преобразования выходных данных задана схема преобразования выходных данных, dataschema изменится на выходную схему. |
Параметр CreateOrRemap
Свойства CloudEvent передаются для сообщений, содержащих необходимые свойства. Если сообщение не содержит обязательных свойств, создаются свойства.
имени | Обязательное поле | Созданное значение, если отсутствует |
---|---|---|
specversion |
Да | 1.0 |
type |
Да | ms.aio-dataflow.telemetry |
source |
Да | aio://<target-name> |
id |
Да | Созданный UUID в целевом клиенте |
subject |
No | Выходной раздел, в котором отправляется сообщение |
time |
No | Создано как RFC 3339 в целевом клиенте |
datacontenttype |
No | Изменен на тип содержимого выходных данных после необязательного этапа преобразования |
dataschema |
No | Схема, определенная в реестре схем |
Следующие шаги
Дополнительные сведения о потоках данных см. в статье "Создание потока данных".