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


Центр Интернета вещей 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) Сведения об упорядочении событий изменения состояния подключения устройства.

Следующие шаги