Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описаны свойства и схема для событий, создаваемых Центром Интернета вещей Azure и не связанных с телеметрией. События, не связанные с телеметрией, отличаются от сообщений, связанных с устройством и облаком, в том, что Центр Интернета вещей выдает эти события в ответ на определенные изменения состояния, связанные с устройствами. Например, события без телеметрии включают изменения жизненного цикла, такие как устройство или модуль, создается или удаляется, или изменения состояния подключения, такие как устройство или модуль подключается или отключается.
События, отличные от телеметрии, можно направлять с помощью маршрутизации сообщений или обращаться к событиям, не относящихся к телеметрии, с помощью Сетка событий Azure. Дополнительные сведения о маршрутизации сообщений Центра Интернета вещей см. в статье "Использование маршрутизации сообщений Центра Интернета вещей для отправки сообщений из устройства в облако в службы Azure и Реагирование на события Центра Интернета вещей с помощью Event Grid для активации действий.
Примеры событий в этой статье были записаны с помощью az iot hub monitor-events команды Azure CLI. Может появиться подмножество свойств, включенных в события, поступающие в конечную точку маршрутизации сообщений.
Доступные типы событий
Центр Интернета вещей Azure создает события, не связанные с телеметрией, в следующих категориях:
| Категория событий | Description |
|---|---|
| События, связанные с состоянием подключения устройства | Создаются, когда устройство подключается к Центру Интернета вещей или отключается от него. |
| События жизненного цикла устройства | Создаются при создании устройства или модуля в Центре Интернета вещей или их удалении из него. |
| События изменения двойников устройств | Создается при изменении или замене двойника устройства или модуля. |
| События изменения цифровых двойников | Создается при изменении или замене цифрового двойника устройства или модуля. |
Общие свойства событий
События, не связанные с телеметрией, имеют несколько общих свойств.
Свойства системы
Центр Интернета вещей задает следующие системные свойства для каждого события.
| Свойство | Type | Description | Ключевое слово для запроса маршрутизации |
|---|---|---|---|
| content-encoding | строка | utf-8 | $contentEncoding |
| тип_содержимого | строка | application/json | $contentType |
| correlation-id | строка | Уникальный идентификатор, определяющий событие. | $correlationId |
| user-id | строка | Имя Центра Интернета вещей, создавшего событие. | $userId |
| iothub-connection-device-id | строка | идентификатор устройства; | $connectionDeviceId |
| iothub-connection-module-id | строка | Идентификатор модуля. Это свойство выводится только для событий жизненного цикла модуля и двойников. | $connectionModuleId |
| iothub-enqueuedtime | number | Дата и время отправки уведомления. В запросах маршрутизации используйте метку времени ISO 8601 ; Например $enqueuedTime > "2022-06-06T22:56:06Z" |
$enqueuedTime |
| iothub-message-source | строка | Категория событий, идентифицирующая источник сообщения. Например, deviceLifecycleEvents. | Н/П |
Свойства приложения
Центр Интернета вещей задает следующие свойства приложения для каждого события.
| Свойство | Type | Description |
|---|---|---|
| deviceId | строка | идентификатор устройства; |
| hubName | строка | Имя Центра Интернета вещей, создавшего событие. |
| iothub-message-schema | строка | Схема сообщения, связанная с категорией события; например, deviceLifecycleNotification. |
| moduleId | строка | Идентификатор модуля. Это свойство выводится только для событий жизненного цикла модуля и событий изменения двойников. |
| operationTimestamp | строка | Метка времени операции в формате ISO 8601. |
| opType | строка | Идентификатор операции, создавшей событие. Например, createDeviceIdentity или deleteDeviceIdentity. |
В запросах маршрутизации используйте имя свойства. Например, deviceId = "my-device".
События, связанные с состоянием подключения
События, связанные с состоянием подключения, создаются всякий раз, когда устройство или модуль подключаются к Центру Интернета вещей или отключаются от него.
Свойства приложения: в следующей таблице показано, как свойства приложения задаются для событий, связанных с состоянием подключения:
| Свойство | Значение |
|---|---|
| iothub-message-schema | deviceConnectionStateNotification |
| opType | deviceConnected или deviceDisconnected |
Модули и устройства используют deviceConnecteddeviceDisconnected свойства приложения для отчета о событиях состояния подключения. Если событие произошло из модуля, то событие также содержит moduleId свойство. Если свойства moduleId нет, тогда событие пришло от устройства.
Системные свойства: в следующей таблице показано, как задаются системные свойства для событий, связанных с состоянием подключения:
| Свойство | Значение |
|---|---|
| iothub-message-source | deviceConnectionStateEvents |
Текст: текст содержит порядковый номер. Порядковый номер является строковым представлением шестнадцатеричного числа. Сравнение строк можно использовать для идентификации большего числа. Если вы преобразуете строку в шестнадцатеричную, это число равно 256-разрядному числу. Порядковый номер строго увеличивается, поэтому последнее событие имеет более высокое число, чем старые события. Этот номер последовательности полезен, если у вас есть частые подключения и отключения устройства, и необходимо убедиться, что для активации нижестоящего действия используется только последнее событие.
Пример
В следующем коде JSON показано событие, связанное с состоянием подключения устройства, которое выдается при отключении устройства.
{
"event": {
"origin": "contoso-device-1",
"module": "",
"interface": "",
"component": "",
"properties": {
"system": {
"content_encoding": "utf-8",
"content_type": "application/json",
"correlation_id": "aaaa0000-bb11-2222-33cc-444444dddddd",
"user_id": "contoso-routing-hub"
},
"application": {
"hubName": "contoso-routing-hub",
"deviceId": "contoso-device-1",
"opType": "deviceDisconnected",
"iothub-message-schema": "deviceConnectionStateNotification",
"operationTimestamp": "2022-06-01T18:43:04.5561024Z"
}
},
"annotations": {
"iothub-connection-device-id": "contoso-device-1",
"iothub-enqueuedtime": 1654109018051,
"iothub-message-source": "deviceConnectionStateEvents",
"x-opt-sequence-number": 72,
"x-opt-offset": "37344",
"x-opt-enqueued-time": 1654109018176
},
"payload": {
"sequenceNumber": "000000000000000001D8713FF7E0851400000002000000000000000000000007"
}
}
}
События жизненного цикла устройства
События жизненного цикла устройства создаются всякий раз при создании устройства или модуля в реестре удостоверений или при их удалении из него. Дополнительные сведения о создании событий жизненного цикла устройств см. в разделе Уведомления о жизненном цикле устройств и модулей.
Свойства приложения: в следующей таблице показано, как свойства приложения задаются для событий жизненного цикла устройства:
| Свойство | Значение |
|---|---|
| iothub-message-schema | deviceLifecycleNotification |
| opType | Одно из следующих значений: createDeviceIdentity, deleteDeviceIdentity. |
Модули и устройства используют createDeviceIdentitydeleteDeviceIdentity свойства приложения для отчета о событиях состояния подключения. Если событие произошло из модуля, то событие также содержит moduleId свойство. Если свойства moduleId нет, тогда событие пришло от устройства.
Системные свойства: в следующей таблице показано, как системные свойства задаются для событий жизненного цикла устройства:
| Свойство | Значение |
|---|---|
| iothub-message-source | deviceLifecycleEvents |
Текст: текст содержит представление двойника устройства или двойника модуля. Он включает идентификатор устройства и идентификатор модуля, etag двойника, свойство версии и теги, свойства, свойства и связанные метаданные двойника.
Пример
В следующем коде JSON показано событие жизненного цикла устройства, создаваемое при создании модуля. Событие записывается с помощью команды Azure CLI az iot hub monitor-events.
{
"event": {
"origin": "contoso-device-2",
"module": "module-1",
"interface": "",
"component": "",
"properties": {
"system": {
"content_encoding": "utf-8",
"content_type": "application/json",
"correlation_id": "c5a4e6986c",
"user_id": "contoso-routing-hub"
},
"application": {
"hubName": "contoso-routing-hub",
"deviceId": "contoso-device-2",
"operationTimestamp": "2022-05-27T18:49:38.4904785Z",
"moduleId": "module-1",
"opType": "createDeviceIdentity",
"iothub-message-schema": "deviceLifecycleNotification"
}
},
"annotations": {
"iothub-connection-device-id": "contoso-device-2",
"iothub-connection-module-id": "module-1",
"iothub-enqueuedtime": 1653677378534,
"iothub-message-source": "deviceLifecycleEvents",
"x-opt-sequence-number": 62,
"x-opt-offset": "31768",
"x-opt-enqueued-time": 1653677378643
},
"payload": {
"deviceId": "contoso-device-2",
"moduleId": "module-1",
"etag": "AAAAAAAAAAE=",
"version": 2,
"properties": {
"desired": {
"$metadata": {
"$lastUpdated": "0001-01-01T00:00:00Z"
},
"$version": 1
},
"reported": {
"$metadata": {
"$lastUpdated": "0001-01-01T00:00:00Z"
},
"$version": 1
}
}
}
}
}
События изменения двойников устройств
События изменения двойников устройств создаются каждый раз, когда выполняется обновление или замена двойника устройства или двойника модуля. В некоторых случаях несколько изменений могут быть упакованы в одном событии. Дополнительные сведения см. в статье о внутренних операциях для двойников устройств или внутренних операций для двойников модулей.
Свойства приложения: в следующей таблице показано, как свойства приложения задаются для событий изменения двойников устройств:
| Свойство | Значение |
|---|---|
| iothub-message-schema | twinChangeNotification |
| opType | Одно из следующих значений: replaceTwin или updateTwin. |
Системные свойства: в следующей таблице показано, как системные свойства задаются для событий изменения двойников устройств:
| Свойство | Значение |
|---|---|
| iothub-message-source | twinChangeEvents |
Текст: в событии обновления текст содержит свойство версии двойника и обновленные теги и свойства и связанные с ними метаданные. В событии замены содержится идентификатор устройства и идентификатор модуля, etag двойника, свойство версии, а также все теги, свойства и связанные метаданные устройства или двойника модуля.
Пример
В следующем коде JSON показано событие изменения двойника, выдаваемое для обновления требуемого свойства и тега двойника модуля. Событие записывается с помощью команды Azure CLI az iot hub monitor-events.
{
"event": {
"origin": "contoso-device-3",
"module": "module-1",
"interface": "",
"component": "",
"properties": {
"system": {
"content_encoding": "utf-8",
"content_type": "application/json",
"correlation_id": "4d1f1e2e74f",
"user_id": "contoso-routing-hub"
},
"application": {
"hubName": "contoso-routing-hub",
"deviceId": "contoso-device-3",
"operationTimestamp": "2022-06-01T22:27:50.2612586Z",
"moduleId": "module-1",
"iothub-message-schema": "twinChangeNotification",
"opType": "updateTwin"
}
},
"annotations": {
"iothub-connection-device-id": "contoso-device-3",
"iothub-connection-module-id": "module-1",
"iothub-enqueuedtime": 1654122470282,
"iothub-message-source": "twinChangeEvents",
"x-opt-sequence-number": 17,
"x-opt-offset": "12352",
"x-opt-enqueued-time": 1654122470329
},
"payload": {
"version": 7,
"tags": {
"tag1": "new value"
},
"properties": {
"desired": {
"property1": "new value",
"$metadata": {
"$lastUpdated": "2022-06-01T22:27:50.2612586Z",
"$lastUpdatedVersion": 6,
"property1": {
"$lastUpdated": "2022-06-01T22:27:50.2612586Z",
"$lastUpdatedVersion": 6
}
},
"$version": 6
}
}
}
}
}
Следующие шаги
Дополнительные сведения о маршрутизации сообщений см. в статье "Использование маршрутизации сообщений Центра Интернета вещей" для отправки сообщений из устройства в облако в службы Azure.
Сведения о том, как добавить запросы в маршруты сообщений, см. в разделе Синтаксис запросов при маршрутизации сообщений Центра Интернета вещей.
Сведения о структуре сообщений, передаваемых с устройства в облако и из облака на устройство, см. в разделе Создание и чтение сообщений Центра Интернета вещей.