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


Темы пробелы в компоненте брокера MQTT Сетка событий Azure

Пространство тем представляет несколько тем с помощью набора шаблонов тем. Шаблоны разделов — это расширение фильтров MQTT, поддерживающих переменные, а также дикие элементы MQTT карта. Каждое пространство раздела представляет разделы MQTT, которые должны использовать один и тот же набор клиентов для обмена данными.

Пространства разделов используются для упрощения управления доступом, позволяя предоставлять доступ к публикации или подписке на группу разделов одновременно, а не управлять доступом для каждого отдельного раздела. Чтобы опубликовать или подписаться на любой раздел MQTT, необходимо:

  1. Создайте ресурс клиента для каждого клиента, который должен взаимодействовать через MQTT.
  2. Создайте группу клиентов, включающую клиентов, которым требуется доступ к публикации или подписке на тот же раздел MQTT.
  3. Создайте пространство тем, включающее шаблон раздела, представляющий предполагаемый фильтр раздела или раздела.
  4. Создайте привязку разрешений, чтобы предоставить группе клиентов доступ к публикации или подписке на пространство тем.

Фильтр раздела MQTT:

Фильтр раздела MQTT — это раздел MQTT, который может включать в себя дикие карта для одного или нескольких сегментов, что позволяет сопоставить несколько разделов MQTT. Он используется для упрощения запросов на подписку, так как фильтр одного раздела может соответствовать нескольким темам.

Брокер MQTT поддерживает все дикие MQTT карта, определенные спецификацией MQTT следующим образом:

  • +: соответствует одному сегменту.
    • Например, фильтр разделов: "компьютеры/+/оповещение" соответствует следующим темам:
      • компьютеры/ temp/alert
      • компьютеры, влажность и оповещение
  • #: соответствует нулю или нескольким сегментам в конце раздела.
    • Например, фильтр разделов: "компьютеры/#" соответствует следующим темам:
      • на их виртуальных машинах
      • компьютеры и temp
      • компьютеры и влажность
      • компьютеры/temp/alert и т. д.

Дополнительные сведения о диких карта см. в разделе "Wild карта s" в спецификации MQTT.

Шаблоны разделов

Шаблоны разделов — это расширение фильтров MQTT, поддерживающих переменные, а также дикие элементы MQTT карта. Конфигурация тем также обеспечивает детальный контроль доступа, позволяя управлять авторизацией каждого клиента в группе клиентов для публикации или подписки на свой собственный раздел. Узнайте больше о том, как шаблоны разделов обеспечивают детализированный контроль доступа.

Конфигурация пространства разделов:

Разделовые пространства могут сгруппировать до 10 шаблонов разделов. Шаблоны разделов поддерживают шаблон MQTT wild карта s (+ и #) и следующие переменные:

Примечание.

  • Разделы, начинающиеся с $, зарезервированы для внутреннего использования.

  • Переменная может представлять часть сегмента или всего сегмента, но не может охватывать несколько сегментов. Например, шаблон раздела может включать "machines/${client.authenticationName|". Factory1}/temp" соответствует разделам "machines/machine1.factory1/temp", "machines/machine2.factory1/temp" и т. д.

  • Шаблоны разделов используют специальные символы $ и | и их необходимо экранировать по-разному в зависимости от используемой оболочки. В PowerShell $ можно сбежать с помощью транспортных средств/${доллар}телеметрии/#. Если вы используете PowerShell, можно экранировать эти специальные символы, как показано в следующих примерах:

    • "vehicles/${client.authenticationName|dollar}/#"

    • vehicles/${client.authenticationName"|"dollar}/#

конфигурация портал Azure:

Чтобы создать пространство тем, выполните следующие действия.

  • Перейдите в пространство имен в портал Azure.
  • В разделе "Пространства разделов" выберите +Раздел пробела.
  • Назначьте имя для пространства тем.

Примечание.

  • Имя пространства раздела может содержать 3–50 символов.
  • Имя пространства тем может включать буквенно-цифровые буквы, дефис(-) и без пробелов.
  • Добавьте хотя бы один шаблон раздела, выбрав +Добавить шаблон раздела.
  • Нажмите кнопку создания.

Снимок экрана: конфигурация пространства тем.

Конфигурация Azure CLI:

Используйте следующие команды для создания пространства разделов:

az eventgrid namespace topic-space create -g myRG --namespace-name myNS -n myTopicSpace --topic-templates ['segment1/+/segment3/${client.authenticationName}', "segment1/${client.attributes.attribute1}/segment3/#"]

Примечание.

Обновления конфигурации пространства тем могут занять несколько минут.

Дальнейшие действия

Дополнительные сведения об авторизации и проверке подлинности:

Краткое руководство.

Основные понятия: