Центр Интернета вещей Azure как источник Сетки событий
В этой статье описаны свойства и схема для событий Центра Интернета вещей Azure. Общие сведения о схемах событий см. в статье Схема событий службы "Сетка событий Azure".
Доступные типы событий
Центр Интернета вещей выдает следующие типы событий:
Тип события | Description |
---|---|
Microsoft.Devices.DeviceCreated | Публикуется при регистрации устройства в Центре Интернета вещей. |
Microsoft.Devices.DeviceDeleted | Публикуется при удалении устройства из Центра Интернета вещей. |
Microsoft.Devices.DeviceConnected | Публикуется при подключении устройства к Центру Интернета вещей. |
Microsoft.Devices.DeviceDisconnected | Публикуется при отключении устройства от Центра Интернета вещей. |
Microsoft.Devices.DeviceTelemetry | Публикуется при отправке сообщения телеметрии в Центр Интернета вещей. |
Пример события
Схемы для событий Device Подключение ed и DeviceDisconnected имеют ту же структуру. Этот пример демонстрирует схему события, возникающего при подключении устройства в Центре Интернета вещей:
[{
"id": "f6bbf8f4-d365-520d-a878-17bf7238abd8",
"source": "/SUBSCRIPTIONS/<subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>",
"subject": "devices/LogicAppTestDevice",
"type": "Microsoft.Devices.DeviceConnected",
"time": "2018-06-02T19:17:44.4383997Z",
"data": {
"deviceConnectionStateEventInfo": {
"sequenceNumber":
"000000000000000001D4132452F67CE200000002000000000000000000000001"
},
"hubName": "egtesthub1",
"deviceId": "LogicAppTestDevice",
"moduleId" : "DeviceModuleID"
},
"specversion": "1.0"
}]
Событие DeviceTelemetry возникает при отправке события телеметрии в Центр Интернета вещей. Пример схемы для этого события приведен ниже.
[{
"id": "9af86784-8d40-fe2g-8b2a-bab65e106785",
"source": "/SUBSCRIPTIONS/<subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>",
"subject": "devices/LogicAppTestDevice",
"type": "Microsoft.Devices.DeviceTelemetry",
"time": "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"
}
},
"specversion": "1.0"
}]
Схемы для событий DeviceCreated и DeviceDeleted имеют ту же структуру. Этот пример демонстрирует схему события, возникающего при регистрации устройства в Центре Интернета вещей:
[{
"id": "56afc886-767b-d359-d59e-0da7877166b2",
"source": "/SUBSCRIPTIONS/<subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>",
"subject": "devices/LogicAppTestDevice",
"type": "Microsoft.Devices.DeviceCreated",
"time": "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"
},
"specversion": "1.0"
}]
Свойства событий
Все события содержат одинаковые данные верхнего уровня:
Свойство | Type | Описание: |
---|---|---|
id |
строка | Уникальный идентификатор события. |
source |
строка | Полный путь к ресурсу источника событий. Это поле защищено от записи. Это значение предоставляет Сетка событий. |
subject |
строка | Определенный издателем путь к субъекту события. |
type |
строка | Один из зарегистрированных типов событий для этого источника событий. |
time |
строка | Время создания события с учетом времени поставщика в формате UTC. |
data |
объект | Данные событий в Центре Интернета вещей. |
specversion |
строка | Версия спецификации схемы CloudEvents. |
Для всех событий Центра Интернета вещей объект данных содержит следующие свойства:
Свойство | Type | Описание: |
---|---|---|
hubName |
строка | Имя Центра Интернета вещей, в котором было создано или из которого было удалено устройство. |
deviceId |
строка | Уникальный идентификатор устройства. Это строка с учетом регистра длиной до 128 знаков, состоящая из букв и цифр в 7-битном формате ASCII, а также следующие специальные символы: - : . + % _ # * ? ! ( ) , = @ ; $ ' . |
Для всех издателей событий используется различное содержимое объекта данных.
Для событий устройство подключено и устройство отключено Центра Интернета вещей объект данных содержит следующие свойства:
Свойство | Type | Описание: |
---|---|---|
moduleId |
строка | Уникальный идентификатор модуля. Это поле выводится только для устройств модуля. Это строка с учетом регистра длиной до 128 знаков, состоящая из букв и цифр в 7-битном формате ASCII, а также следующие специальные символы: - : . + % _ # * ? ! ( ) , = @ ; $ ' . |
deviceConnectionStateEventInfo |
объект | Сведения о событии состояния подключения устройства. |
sequenceNumber |
строка | Номер, который помогает указать порядок событий подключения или отключения устройства. У последнего события будет порядковый номер, который выше предыдущего. Это число может изменяться более чем на 1, но строго в сторону увеличения. См. способы использования порядковых номеров. |
Для события Центра Интернета вещей Телеметрия устройства объект данных содержит сообщение от устройства в облако в формате сообщений Центра Интернета вещей и имеет следующие свойства:
Свойство | Type | Описание: |
---|---|---|
body |
строка | Содержимое сообщения от устройства. |
properties |
строка | Свойства приложения — это определяемые пользователем строки, которые можно добавить в сообщение. Эти поля являются необязательными. |
system properties |
строка | Системные свойства помогают определить содержимое и источник сообщений. Сообщение телеметрии устройства должно быть в допустимом формате JSON, где в системных свойствах сообщения для contentType задано значение JSON, а для contentEncoding задано значение UTF-8. Если это не задано, Центр Интернета вещей будет записывать сообщения в кодировке base 64. |
Для событий устройство создано и устройство удалено Центра Интернета вещей объект данных содержит следующие свойства:
Свойство | Type | Описание |
---|---|---|
twin |
объект | Сведения о двойнике устройства, которые представляют собой облачное представление метаданных устройства для приложения. |
deviceID |
строка | Уникальный идентификатор двойника устройства. |
etag |
строка | Проверяющий элемент управления для обеспечения согласованности обновлений двойника устройства. Для каждого двойника устройства обеспечена уникальность каждого тега etag. |
deviceEtag |
строка | Проверяющий элемент управления для обеспечения согласованности обновлений реестра устройства. Каждый deviceEtag гарантированно будет уникальным для каждого реестра устройства. |
status |
строка | Указывает, включен ли или отключен двойник устройства. |
statusUpdateTime |
строка | Метка времени последнего обновления состояния для двойника устройства в формате ISO8601. |
connectionState |
строка | Указывает, подключено ли устройство или отключено. |
lastActivityTime |
строка | Метка времени последнего действия в формате ISO8601. |
cloudToDeviceMessageCount |
integer | Число сообщений, отправленных из облака на это устройство. |
authenticationType |
строка | Тип аутентификации, используемый для этого устройства: SAS , SelfSigned или CertificateAuthority . |
x509Thumbprint |
строка | Отпечаток — это уникальное значение для сертификата x509, которое обычно используется для поиска определенного сертификата в хранилище сертификатов. Отпечаток динамически создается с помощью алгоритма SHA1 и физически не существует в сертификате. |
primaryThumbprint |
строка | Первичный отпечаток для сертификата x509. |
secondaryThumbprint |
строка | Вторичный отпечаток для сертификата x509. |
version |
integer | Целое число, которое увеличивается на единицу при каждом обновлении двойника устройства. |
desired |
объект | Часть свойств, которые могут быть записаны только серверной частью приложения и считаны устройством. |
reported |
объект | Часть свойств, которые могут быть записаны только устройством и считаны серверной частью приложения. |
lastUpdated |
строка | Метка времени последнего обновления свойств для двойника устройства в формате ISO8601. |
Практические руководства и другие учебные материалы
Заголовок | Description |
---|---|
Отправка уведомлений электронной почты о событиях в Центре Интернета вещей Azure с помощью Logic Apps | Приложение логики отправляет уведомление по электронной почте каждый раз, когда добавляется устройство в Центр Интернета вещей. |
Реагирование на события в Центре Интернета вещей, используя службу "Сетка событий" для запуска действий (предварительная версия) | Общие сведения об интеграции Центра Интернета вещей со службой "Сетка событий". |
Order device connection events from Azure IoT Hub using Azure Cosmos DB (Упорядочение событий подключения устройств из Центра Интернета вещей с помощью Azure Cosmos DB) | Сведения об упорядочении событий изменения состояния подключения устройства. |
Следующие шаги
- См. общие сведения о службе "Сетка событий Azure".
- Дополнительные сведения о совместной работе Центра Интернета вещей и службы "Сетка событий" см. в статье о реагировании на события Центра Интернета вещей с использованием службы "Сетка событий" для активации действий.