Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Центр Интернета вещей Azure интегрируется с Сеткой событий Azure. Вы можете отправлять уведомления о событиях в другие службы и активировать подчиненные процессы. Настройте бизнес-приложения для прослушивания событий Центра Интернета вещей, чтобы реагировать на критические события в надежном, масштабируемом и безопасном режиме. Например, создайте приложение, которое обновляет базу данных, создает рабочий билет и отправляет уведомление по электронной почте при каждой регистрации нового устройства в Центре Интернета вещей.
Azure Event Grid — это полностью управляемая служба, которая использует модель публикации и подписки для маршрутизации событий. Эта служба поддерживает такие службы Azure, как Функции Azure и Azure Logic Apps, и может доставлять оповещения о событиях в службы за пределами Azure с помощью веб-перехватчиков. Полный список обработчиков событий, поддерживаемых сеткой событий, см. в статье "Что такое Сетка событий Azure?".
Чтобы просмотреть видео об этой интеграции, ознакомьтесь с интеграцией Центра Интернета вещей Azure с Сеткой событий Azure.
Региональная доступность
Интеграция со службой "Сетка событий" доступна для центров IoT, расположенных в регионах, где поддерживается эта служба. Список последних регионов см. в разделе "Продукты", доступные по регионам.
Типы событий
Центр Интернета вещей публикует следующие типы событий:
Тип события | Описание |
---|---|
Microsoft.Devices.DeviceCreated | Публикуется при регистрации устройства в Центре Интернета вещей. |
Microsoft.Devices.УстройствоУдалено | Публикуется при удалении устройства из Центра Интернета вещей. |
Microsoft.Devices.DeviceConnected | Публикуется при подключении устройства к Центру Интернета вещей. |
Microsoft.Devices.DeviceDisconnected | Публикуется при отключении устройства от Центра Интернета вещей. |
Microsoft.Devices.DeviceTelemetry | Опубликовано при отправке сообщения телеметрии устройства в Центр Интернета вещей |
Чтобы настроить события, которые будут публиковаться в каждом Центре Интернета вещей, используйте портал Azure или Azure CLI. Например, ознакомьтесь с руководством по отправке уведомлений по электронной почте о событиях Центра Интернета вещей Azure с помощью сетки событий и Logic Apps.
Схема событий
События Центра Интернета вещей содержат все сведения, необходимые для реагирования на изменения в жизненном цикле устройства. Чтобы определить событие Центра Интернета вещей, проверьте, начинается ли свойство eventType с Microsoft.Devices. Дополнительные сведения об использовании свойств событий Сетки событий см. в схеме событий Сетки событий Azure.
Схема подключения устройства
В следующем примере показана схема события подключения устройства:
[{
"id": "f6bbf8f4-d365-520d-a878-17bf7238abd8",
"topic": "/SUBSCRIPTIONS/<subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>",
"subject": "devices/LogicAppTestDevice",
"eventType": "Microsoft.Devices.DeviceConnected",
"eventTime": "2018-06-02T19:17:44.4383997Z",
"data": {
"deviceConnectionStateEventInfo": {
"sequenceNumber":
"000000000000000001D4132452F67CE200000002000000000000000000000001"
},
"hubName": "egtesthub1",
"deviceId": "LogicAppTestDevice",
"moduleId" : "DeviceModuleID",
},
"dataVersion": "1",
"metadataVersion": "1"
}]
Схема телеметрии устройств
Сообщения телеметрии устройства должны находиться в корректном формате JSON с параметром contentType, установленным на application/json, и с параметром contentEncoding, установленным на UTF-8, в системных свойствах сообщений. В обоих свойствах регистр символов не имеет значения. Если кодировка содержимого не задана, Центр Интернета вещей записывает сообщения в кодировке base 64.
Вы можете обогатить события телеметрии устройства перед публикацией в Сетке событий, выбрав конечную точку в качестве сетки событий. Дополнительные сведения см. в разделе "Обогащение сообщений" для сообщений Центра Интернета вещей в облаке.
В следующем примере показана схема события телеметрии устройства:
[{
"id": "9af86784-8d40-fe2g-8b2a-bab65e106785",
"topic": "/SUBSCRIPTIONS/<subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>",
"subject": "devices/LogicAppTestDevice",
"eventType": "Microsoft.Devices.DeviceTelemetry",
"eventTime": "2019-01-07T20:58:30.48Z",
"data": {
"body": {
"Weather": {
"Temperature": 900
},
"Location": "USA"
},
"properties": {
"Status": "Active"
},
"systemProperties": {
"iothub-content-type": "application/json",
"iothub-content-encoding": "utf-8",
"iothub-connection-device-id": "d1",
"iothub-connection-auth-method": "{\"scope\":\"device\",\"type\":\"sas\",\"issuer\":\"iothub\",\"acceptingIpFilterRule\":null}",
"iothub-connection-auth-generation-id": "123455432199234570",
"iothub-enqueuedtime": "2019-01-07T20:58:30.48Z",
"iothub-message-source": "Telemetry"
}
},
"dataVersion": "",
"metadataVersion": "1"
}]
Схема, созданная устройством
В следующем примере показана схема события создания устройства:
[{
"id": "56afc886-767b-d359-d59e-0da7877166b2",
"topic": "/SUBSCRIPTIONS/<subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>",
"subject": "devices/LogicAppTestDevice",
"eventType": "Microsoft.Devices.DeviceCreated",
"eventTime": "2018-01-02T19:17:44.4383997Z",
"data": {
"twin": {
"deviceId": "LogicAppTestDevice",
"etag": "AAAAAAAAAAE=",
"deviceEtag":"null",
"status": "enabled",
"statusUpdateTime": "0001-01-01T00:00:00",
"connectionState": "Disconnected",
"lastActivityTime": "0001-01-01T00:00:00",
"cloudToDeviceMessageCount": 0,
"authenticationType": "sas",
"x509Thumbprint": {
"primaryThumbprint": null,
"secondaryThumbprint": null
},
"version": 2,
"properties": {
"desired": {
"$metadata": {
"$lastUpdated": "2018-01-02T19:17:44.4383997Z"
},
"$version": 1
},
"reported": {
"$metadata": {
"$lastUpdated": "2018-01-02T19:17:44.4383997Z"
},
"$version": 1
}
}
},
"hubName": "egtesthub1",
"deviceId": "LogicAppTestDevice"
},
"dataVersion": "1",
"metadataVersion": "1"
}]
Предупреждение
Данные двойника , связанные с событием создания устройства, являются конфигурацией по умолчанию и не должны полагаться на фактические authenticationType
и другие свойства устройства в созданном устройстве. Для authenticationType
и других свойств устройства в вновь созданном устройстве используйте API менеджера регистрации, предоставляемый в SDK Azure IoT.
Подробное описание каждого свойства см. в разделе Центр Интернета вещей Azure в качестве источника сетки событий.
Фильтровать события
Сетка событий позволяет фильтровать типы событий, субъекты и содержимое данных. При создании подписки на службу "Сетка событий" можно выбрать подписку на выбранные события Интернета вещей.
- Тип события: список типов событий Центра Интернета вещей см. в разделе "Типы событий".
- Тема. Для событий Центра Интернета вещей тема — это имя устройства. Тема принимает формат
devices/{deviceId}
. Вы можете фильтровать темы на основе совпадений с Begins With (префикс) и Ends With (суффикс). В фильтре используется операторAND
, чтобы события с темой, которая соответствует и префиксу, и суффиксу, доставлялись подписчику. - Содержимое данных: Центр Интернета вещей заполняет содержимое данных с помощью формата сообщения. Вы можете выбрать, какие события отправляются на основе содержимого телеметрического сообщения. Примеры см. в разделе "Расширенная фильтрация". Для фильтрации в тексте сообщения телеметрии необходимо задать для contentType значение application/json и contentEncoding значение UTF-8 в свойствах системы сообщений. Оба этих свойства регистронезависимы.
Для событий телеметрии устройства Центр Интернета вещей создает маршрут сообщений по умолчанию с именем RouteToEventGrid на основе подписки. Чтобы отфильтровать сообщения перед отправкой данных телеметрии, обновите запрос маршрутизации.
Ограничения для событий состояния подключения устройства
События подключения и отключения устройства доступны для устройств, подключающихся через протоколы MQTT или AMQP, либо через WebSockets с использованием этих протоколов. Запросы, сделанные только с помощью HTTPS, не активируют уведомления о состоянии подключения устройства.
Дополнительные сведения о мониторинге состояния устройства с помощью сетки событий см. в разделе "Мониторинг состояния подключения устройства".
Интервал состояния подключения устройства
Центр Интернета вещей пытается сообщить о каждом событии изменения состояния подключения устройства, но некоторые из них могут быть пропущены. Как минимум, Центр Интернета вещей сообщает о событиях изменения состояния подключения, которые происходят 60 секунд друг от друга. Это поведение может привести к таким результатам, как несколько зарегистрированных событий подключения устройств без событий отключения между ними.
Советы по обработке событий
Приложения, обрабатывающие события Центра Интернета вещей, должны следовать приведенным ниже рекомендациям.
- Несколько подписок можно настроить для маршрутизации событий в один обработчик событий, поэтому не следует думать, что события происходят из определенного источника. Всегда проверяйте тему сообщения, чтобы убедиться, что оно поступило из предполагаемого Центра Интернета вещей.
- Не следует думать, что все полученные события являются предполагаемыми вами типами. Всегда проверяйте значение eventType перед обработкой сообщения.
- Сообщения могут приступать не по порядку или после некоторой задержки. Используйте поле etag, чтобы проверить актуальность информации об объектах для событий, созданных устройством или удаленных им.