Что такое сетка событий Azure?

Служба сетки событий Azure — это высокомасштабируемая и полностью управляемая служба публикации-подписки для распространения сообщений. Event Grid предлагает гибкие шаблоны потребления сообщений и использует протоколы MQTT (Message Queuing Telemetry Transport) и HTTP. С помощью сетки событий можно создавать конвейеры данных с данными устройства, интегрировать приложения и создавать бессерверные архитектуры на основе событий.

Клиенты могут публиковать и подписываться на сообщения по протоколам MQTT v3.1.1 и v5.0 для поддержки решений Интернета вещей (IoT). С помощью ПРОТОКОЛА HTTP вы можете использовать Сетку событий для создания решений на основе событий, в которых служба издателя объявляет об изменениях состояния системы (события) для приложений подписчиков. Вы можете настроить сетку событий для отправки событий подписчикам (принудительной доставки), или подписчики могут подключаться к сетке событий для чтения событий (доставка по запросу). Служба "Сетка событий" поддерживает спецификацию CloudEvents 1.0 для обеспечения взаимодействия между системами.

Схема, показывающая издателей и подписчиков с помощью протоколов MQTT и HTTP.

Основные возможности Сетка событий Azure

Сетка событий имеет две основные функции:

Обмен сообщениями MQTT: устройства и приложения Интернета вещей могут взаимодействовать друг с другом по протоколу MQTT. Вы также можете использовать сетку событий для маршрутизации сообщений MQTT в службы Azure или пользовательские конечные точки для дальнейшего анализа данных, визуализации или хранилища. С помощью этой интеграции со службами Azure можно создавать конвейеры данных, начинающиеся с приема данных с устройств Интернета вещей.

Распределение данных с помощью режимов отправки и извлечения. В любой точке конвейера данных HTTP-приложения могут использовать сообщения с помощью API push-уведомлений или извлечения. Источник данных может включать данные клиентов MQTT, но также включает следующие источники данных, которые отправляют события по протоколу HTTP:

  • Службы Azure;
  • Пользовательские приложения
  • Системы внешнего партнёрского программного обеспечения как услуги (SaaS)

Механизм push-доставки Event Grid отправляет данные в пункты назначения, включая собственные веб-перехватчики приложений и службы Azure. В следующих разделах описывается каждая функция.

Обмен сообщениями MQTT

Ваши клиенты могут обмениваться сообщениями в пользовательских именах тем MQTT с помощью модели обмена сообщениями «публикация-подписка». Служба "Сетка событий" поддерживает клиента, который публикует и подписывается на сообщения через MQTT версии 3.1.1, MQTT версии 3.1.1 через WebSocket, MQTT версии 5 и MQTT версии 5 через WebSocket.

Служба "Сетка событий" также поддерживает устройства и службы, отправляющие сообщения MQTT по протоколу HTTPS, что упрощает интеграцию с клиентами, отличными от MQTT. Вы можете отправлять MQTT-сообщения в облако для анализа данных, хранения и визуализации, среди других случаев использования. Эта функция находится в режиме предварительного просмотра.

Сетка событий интегрируется с Операции Интернета вещей Azure для объединения возможности брокера MQTT на устройстве с возможностями брокера MQTT сетки событий в облаке. Azure IoT MQTT broker — это распределённый MQTT-брокер для edge computing, который работает на кластерах Kubernetes с поддержкой Azure Arc и доступен в составе Операции Интернета вещей Azure.

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

Схема, показывающая двунаправленное взаимодействие MQTT с клиентами издателя и подписчика.

Основные сведения о поддержке обмена сообщениями MQTT в службе "Сетка событий":

  • ПоддержкаMQTT версии 3.1.1 и MQTT версии 5.0. Для взаимодействия со службой используется любая клиентская библиотека MQTT с открытым кодом.
  • Пользовательские темы с поддержкой подстановочных знаков: Использует собственную структуру темы.
  • Модель обмена сообщениями о публикации и подписке: эффективно взаимодействует с помощью шаблонов обмена сообщениями "один ко многим", "многие ко многим" и "один к одному".
  • Встроенная облачная интеграция: направляет сообщения MQTT в службы Azure или пользовательские веб-перехватчики для дальнейшей обработки.
  • Гибкая и детализированнаямодель управления доступом: группируют клиентов и разделы для упрощения управления доступом. Использует поддержку переменной в шаблонах разделов для точного управления доступом.
  • Методы проверки подлинности брокера MQTT: использует проверку подлинности сертификата X.509, стандарт отраслевой проверки подлинности для устройств Интернета вещей. Использует аутентификацию Microsoft Entra ID, стандарт аутентификации Azure для приложений. Использует гибкие шаблоны проверки подлинности, такие как проверка подлинности OAuth 2.0 JSON Web Token (JWT), которая является упрощенной и безопасной для клиентов MQTT, которые не подготовлены в Azure. Использует настраиваемую проверку подлинности веб-перехватчика, которая позволяет внешним конечным точкам HTTP (веб-перехватчикам) динамически проверять подлинность подключений MQTT. Этот метод использует проверку Microsoft Entra ID JWT для обеспечения безопасного доступа.
  • Поддержка протокола TLS 1.2 и TLS 1.3. Защита взаимодействия клиента с помощью надежных протоколов шифрования.
  • Поддержка нескольких сеансов: подключает приложения с несколькими активными сеансами, чтобы обеспечить надежность и масштабируемость.
  • MQTT через WebSocket: включает подключение для клиентов в средах, ограниченных брандмауэром.
  • Пользовательские доменные имена: Поддерживает назначение собственных доменных имён на MQTT-конечные точки пространства Event Grid, что повышает безопасность и упрощает конфигурацию клиента.
  • События жизненного цикла клиента: поддерживают приложения, реагирующие на события, связанные со статусом клиентского соединения или операциями с клиентскими ресурсами.
  • HTTP Publish: поддерживает устройства и сервисы, отправляющие MQTT-сообщения в Event Grid через HTTPS, что упрощает интеграцию с клиентами, не относящимися к MQTT.
  • MQTT Сохранить: гарантирует, что последнее известное сообщение по теме автоматически доставляется новым подписчикам, что позволяет мгновенной синхронизации состояния.
  • Общие подписки: поддерживает несколько клиентов, которые потребляют сообщения из одной подписки в группе, при этом брокер распределяет сообщения между ними для сбалансированной и масштабируемой обработки.
  • Идентификаторы подписки: поддерживает клиенты MQTT 5, которые отмечают каждую подписку уникальным цифровым идентификатором, что упрощает определение, с какой подпиской совпадает полученное сообщение, когда клиент управляет несколькими подписками.

Дополнительные сведения о брокере MQTT см. в следующих статьях:

Обмен сообщениями о событиях (HTTP)

Служба Event Grid поддерживает доставку событий через пуш-уведомления и запросы по протоколу HTTP. При push-доставке вы определяете пункт назначения в подписке на событие, и Event Grid отправляет события туда назначения. При пул-доставке приложения подписчиков подключаются к Event Grid для обработки событий. Event Grid поддерживает pull delivery для тем в пространстве имён.

Схема, показывающая пуш-доставку и пул-доставку с задействованными типами ресурсов.

Обработчики событий

При push-доставке подписка на событие — это универсальный ресурс конфигурации, который используется для определения обработчика событий или назначения, куда Event Grid отправляет события. Например, можно отправлять данные в веб-перехватчик, функцию Azure или центры событий. Полный список поддерживаемых обработчиков событий см.:

Отправка отправки и доставка по запросу

Следующие общие рекомендации помогут вам решить, когда следует использовать доставку по запросу или пуш-доставку.

Доставка по запросу

  • Вам нужен полный контроль над тем, когда получать события. Например, ваше приложение может быть не всегда доступно или недостаточно стабильным. Вы также можете обрабатывать данные только в определенное время.
  • Вам нужен полный контроль над потреблением событий. Например, в нижестоящей службе или уровне вашего клиентского приложения могут возникнуть проблемы, которые предотвращают обработку событий. В таком случае потребительское приложение может использовать API pull delivery, чтобы выпустить уже прочитанное событие обратно брокеру для дальнейшей доставки.
  • Вы хотите использовать частные ссылки при получении событий, что возможно только при доставке по запросу, а не при отправке push-уведомлений.
  • Вы не можете публиковать конечную точку и использовать push-доставку, но можете подключиться к Event Grid, чтобы получать события.

Push-доставка

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

Основные сведения о модели HTTP:

  • Гибкая модель потребления событий: использование событий с помощью режима извлечения или отправки при использовании ПРОТОКОЛА HTTP.
  • Системные события: быстро начните работу со встроенными событиями служб Azure.
  • Собственные события приложения: используйте сетку событий для маршрутизации, фильтрации и надежной доставки пользовательских событий из приложения.
  • События партнеров: подпишитесь на события поставщика SaaS партнера и обработайте их в Azure.
  • Расширенная фильтрация. Фильтрация по типу события или другим атрибутам события, чтобы убедиться, что обработчики событий или потребительские приложения получают только соответствующие события.
  • Надежность: функция принудительной доставки включает в себя механизм повторных попыток в течение 24 часов с экспоненциальной задержкой, чтобы убедиться, что события доставляются. Если вы используете доставку по запросу, приложение имеет полный контроль над обработкой событий.
  • Высокая пропускная способность: создание высокопроизводительных интегрированных решений с помощью сетки событий.
  • Пользовательские доменные имена: Назначьте свои собственные доменные имена на HTTP-конечные точки пространства Event Grid, что повышает безопасность и упрощает конфигурацию клиента.

Дополнительные сведения см. в следующих статьях:

Случаи использования

Список вариантов использования, в которых можно использовать сетку событий, см. в разделе "Варианты использования".

Поддерживаемые регионы

Функции брокера MQTT и тем пространства имён доступны в следующих регионах.

Регион Регион Регион Регион
Восточная Австралия Australia Southeast Центральная Австралия Центральная Австралия 2
Южная Бразилия Юго-Восточная Бразилия Центральная Канада Восточная Канада
Центральная Индия Центральная часть США Восточная Азия Восточная часть США
Восточная часть США 2 Западная часть США Центральная Франция Южная Франция
Северная Германия Центрально-Западная Германия Израиль, центральный регион Северная Италия
Восточная Япония Западная Япония Республика Корея, центральный регион Республика Корея, южный регион
Центральная Мексика Центрально-северная часть США Северная Европа Восточная Норвегия;
Центральная Польша Западная часть ЮАР Северная часть ЮАР Центрально-южная часть США
Южная Индия Юго-Восточная Азия Центральная Испания Центральная Швеция
Южная Швеция Северная Швейцария Западная Швейцария Северная часть ОАЭ;
Центральная часть ОАЭ южная часть Соединенного Королевства западная часть Соединенного Королевства Западная Европа
западная часть США 2 Запад США 3 Центрально-западная часть США Бельгия Центральная