Hub IoT do Azure como uma fonte de Grade de Eventos
Este artigo fornece as propriedades e o esquema para eventos do Hub IoT do Azure. Para obter uma introdução aos esquemas de eventos, consulte Esquema de eventos da Grade de Eventos do Azure.
Tipos de eventos disponíveis
O Hub IoT do Azure emite os seguintes tipos de evento:
Tipo de evento | Description |
---|---|
Microsoft.Devices.DeviceCreated | Publicado quando um dispositivo é registado num hub IoT. |
Microsoft.Devices.DeviceDeleted | Publicado quando um dispositivo é eliminado de um hub IoT. |
Microsoft.Devices.DeviceConnected | Publicado quando um dispositivo é ligado a um hub IoT. |
Microsoft.Devices.DeviceDisconnected | Publicado quando um dispositivo é desligado de um hub IoT. |
Microsoft.Devices.DeviceTelemetry | Publicado quando uma mensagem de telemetria é enviada para um hub IoT. |
Exemplo de evento
Os esquemas para eventos DeviceConnected e DeviceDisconnected têm a mesma estrutura. Este evento de exemplo mostra o esquema de um evento gerado quando um dispositivo está conectado a um hub IoT:
[{
"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"
}]
O evento DeviceTelemetry é gerado quando um evento de telemetria é enviado para um Hub IoT. Um esquema de exemplo para este evento é mostrado abaixo.
[{
"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"
}]
Os esquemas para eventos DeviceCreated e DeviceDeleted têm a mesma estrutura. Este evento de exemplo mostra o esquema de um evento gerado quando um dispositivo é registrado em um hub IoT:
[{
"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"
}]
Propriedades do evento
Todos os eventos contêm os mesmos dados de nível superior:
Propriedade | Type | Description |
---|---|---|
id |
string | Identificador exclusivo do evento. |
source |
string | Caminho completo do recurso para a origem do evento. Este campo não pode ser gravado. O Event Grid fornece este valor. |
subject |
string | Caminho definido pelo publicador para o assunto do evento. |
type |
string | Um dos tipos de eventos registados para esta origem de evento. |
time |
string | A hora em que o evento é gerado com base na hora UTC do provedor. |
data |
objeto | Dados de eventos do Hub IoT. |
specversion |
string | Versão da especificação do esquema CloudEvents. |
Para todos os eventos do Hub IoT, o objeto de dados contém as seguintes propriedades:
Propriedade | Type | Description |
---|---|---|
hubName |
string | Nome do Hub IoT onde o dispositivo foi criado ou excluído. |
deviceId |
string | O identificador exclusivo do dispositivo. Esta cadeia de caracteres que diferencia maiúsculas de minúsculas pode ter até 128 caracteres e suporta caracteres alfanuméricos ASCII de 7 bits mais os seguintes caracteres especiais: - : . + % _ # * ? ! ( ) , = @ ; $ ' . |
O conteúdo do objeto de dados é diferente para cada editor de eventos.
Para eventos Device Connected e Device Disconnected IoT Hub, o objeto de dados contém as seguintes propriedades:
Propriedade | Type | Description |
---|---|---|
moduleId |
string | O identificador exclusivo do módulo. Este campo é saída apenas para dispositivos de módulo. Esta cadeia de caracteres que diferencia maiúsculas de minúsculas pode ter até 128 caracteres e suporta caracteres alfanuméricos ASCII de 7 bits mais os seguintes caracteres especiais: - : . + % _ # * ? ! ( ) , = @ ; $ ' . |
deviceConnectionStateEventInfo |
objeto | Informações do evento do estado da conexão do dispositivo |
sequenceNumber |
string | Um número que ajuda a indicar a ordem dos eventos do dispositivo conectado ou do dispositivo desconectado. O evento mais recente terá um número de sequência superior ao evento anterior. Este número pode variar em mais de 1, mas está a aumentar rigorosamente. Veja como usar o número de sequência. |
Para o evento Device Telemetry IoT Hub, o objeto de dados contém a mensagem device-to-cloud no formato de mensagem do hub IoT e tem as seguintes propriedades:
Propriedade | Type | Description |
---|---|---|
body |
string | O conteúdo da mensagem do dispositivo. |
properties |
string | As propriedades do aplicativo são cadeias de caracteres definidas pelo usuário que podem ser adicionadas à mensagem. Estes campos são opcionais. |
system properties |
string | As propriedades do sistema ajudam a identificar o conteúdo e a origem das mensagens. A mensagem de telemetria do dispositivo deve estar em um formato JSON válido com o contentType definido como JSON e contentEncoding definido como UTF-8 nas propriedades do sistema de mensagens. Se isso não estiver definido, o Hub IoT gravará as mensagens no formato codificado base 64. |
Para eventos do Hub IoT criado e Excluído do dispositivo, o objeto de dados contém as seguintes propriedades:
Propriedade | Type | Description |
---|---|---|
twin |
objeto | Informações sobre o gêmeo de dispositivo, que é a representação na nuvem dos metadados do dispositivo de aplicativo. |
deviceID |
string | O identificador exclusivo do gêmeo do dispositivo. |
etag |
string | Um validador para garantir a consistência das atualizações de um dispositivo gêmeo. Cada etag é garantido para ser único por dispositivo gêmeo. |
deviceEtag |
string | Um validador para garantir a consistência das atualizações de um registro de dispositivo. Cada deviceEtag é garantido para ser único por registro de dispositivo. |
status |
string | Indica se o dispositivo twin está ativado ou desativado. |
statusUpdateTime |
string | O carimbo de data/hora ISO8601 da última atualização de status de gêmeos do dispositivo. |
connectionState |
string | Indica se o dispositivo está conectado ou desconectado. |
lastActivityTime |
string | O carimbo de data/hora ISO8601 da última atividade. |
cloudToDeviceMessageCount |
integer | Contagem de mensagens da nuvem para o dispositivo enviadas para este dispositivo. |
authenticationType |
string | Tipo de autenticação usado para este dispositivo: , SAS SelfSigned ou CertificateAuthority . |
x509Thumbprint |
string | A impressão digital é um valor exclusivo para o certificado x509, comumente usado para localizar um certificado específico em um armazenamento de certificados. A impressão digital é gerada dinamicamente usando o algoritmo SHA1 e não existe fisicamente no certificado. |
primaryThumbprint |
string | Impressão digital primária para o certificado x509. |
secondaryThumbprint |
string | Impressão digital secundária para o certificado x509. |
version |
integer | Um inteiro que é incrementado em um cada vez que o gêmeo do dispositivo é atualizado. |
desired |
objeto | Uma parte das propriedades que podem ser gravadas somente pelo back-end do aplicativo e lidas pelo dispositivo. |
reported |
objeto | Uma parte das propriedades que podem ser gravadas somente pelo dispositivo e lidas pelo back-end do aplicativo. |
lastUpdated |
string | O carimbo de data/hora ISO8601 da última atualização de propriedade gêmea do dispositivo. |
Tutorials and how-tos (Tutoriais e procedimentos)
Title | Description |
---|---|
Enviar notificações por email sobre eventos do Hub IoT do Azure usando Aplicativos Lógicos | Um aplicativo lógico envia um e-mail de notificação sempre que um dispositivo é adicionado ao seu Hub IoT. |
Reagir a eventos do Hub IoT usando a Grade de Eventos para disparar ações | Visão geral da integração do Hub IoT com a Grade de Eventos. |
Ordenar eventos ligados e desligados do dispositivo | Mostra como ordenar eventos de estado de conexão do dispositivo. |
Próximos passos
- Para obter uma introdução à Grade de Eventos do Azure, consulte O que é a Grade de Eventos?
- Para saber como o Hub IoT e a Grade de Eventos funcionam juntos, consulte Reagir a eventos do Hub IoT usando a Grade de Eventos para acionar ações.