Azure IoT Hub som en Event Grid-källa
Den här artikeln innehåller egenskaper och schema för Azure IoT Hub-händelser. En introduktion till händelsescheman finns i Händelseschema för Azure Event Grid.
Tillgängliga händelsetyper
Azure IoT Hub genererar följande händelsetyper:
Händelsetyp | beskrivning |
---|---|
Microsoft.Devices.DeviceCreated | Publiceras när en enhet registreras i en IoT-hubb. |
Microsoft.Devices.DeviceDeleted | Publiceras när en enhet tas bort från en IoT-hubb. |
Microsoft.Devices.DeviceConnected | Publiceras när en enhet är ansluten till en IoT-hubb. |
Microsoft.Devices.DeviceDisconnected | Publiceras när en enhet kopplas från en IoT-hubb. |
Microsoft.Devices.DeviceTelemetry | Publicerad när ett telemetrimeddelande skickas till en IoT-hubb. |
Exempelhändelse
Scheman för enhets-Anslut- och DeviceDisconnected-händelser har samma struktur. Den här exempelhändelsen visar schemat för en händelse som genereras när en enhet är ansluten till en IoT-hubb:
[{
"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"
}]
Händelsen DeviceTelemetry aktiveras när en telemetrihändelse skickas till en IoT Hub. Ett exempelschema för den här händelsen visas nedan.
[{
"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"
}]
Scheman för enhetsskapade händelser och Enhetsborttagningshändelser har samma struktur. Den här exempelhändelsen visar schemat för en händelse som genereras när en enhet är registrerad på en IoT-hubb:
[{
"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"
}]
Händelseegenskaper
Alla händelser innehåller samma data på den översta nivån:
Property | Type | Description |
---|---|---|
id |
sträng | Unik identifierare för händelsen. |
source |
sträng | Fullständig resurssökväg till händelsekällan. Det här fältet kan inte skrivas. Event Grid ger det här värdet. |
subject |
sträng | Utgivardefinierad sökväg till händelseobjektet. |
type |
sträng | En av de registrerade händelsetyperna för den här händelsekällan. |
time |
sträng | Den tid då händelsen genereras baserat på leverantörens UTC-tid. |
data |
objekt | IoT Hub-händelsedata. |
specversion |
sträng | CloudEvents schemaspecifikationsversion. |
För alla IoT Hub-händelser innehåller dataobjektet följande egenskaper:
Property | Type | Description |
---|---|---|
hubName |
sträng | Namnet på den IoT Hub där enheten skapades eller togs bort. |
deviceId |
sträng | Enhetens unika identifierare. Den här skiftlägeskänsliga strängen kan vara upp till 128 tecken lång och har stöd för 7-bitars alfanumeriska ASCII-tecken plus följande specialtecken: - : . + % _ # * ? ! ( ) , = @ ; $ ' . |
Innehållet i dataobjektet skiljer sig åt för varje händelseutgivare.
För händelser med enhets- Anslut och frånkopplad IoT Hub-enhet innehåller dataobjektet följande egenskaper:
Property | Type | Description |
---|---|---|
moduleId |
sträng | Modulens unika identifierare. Det här fältet är endast utdata för modulenheter. Den här skiftlägeskänsliga strängen kan vara upp till 128 tecken lång och har stöd för 7-bitars alfanumeriska ASCII-tecken plus följande specialtecken: - : . + % _ # * ? ! ( ) , = @ ; $ ' . |
deviceConnectionStateEventInfo |
objekt | Händelseinformation om enhetsanslutningstillstånd |
sequenceNumber |
sträng | Ett tal som hjälper till att ange ordningen på enhetsanslutna händelser eller enhets frånkopplade händelser. Den senaste händelsen har ett sekvensnummer som är högre än föregående händelse. Det här antalet kan ändras med mer än 1, men ökar strikt. Se hur du använder sekvensnummer. |
För IoT Hub-händelse för enhetstelemetri innehåller dataobjektet meddelandet från enhet till moln i IoT Hub-meddelandeformat och har följande egenskaper:
Property | Type | Description |
---|---|---|
body |
sträng | Innehållet i meddelandet från enheten. |
properties |
sträng | Programegenskaper är användardefinierade strängar som kan läggas till i meddelandet. Dessa fält är valfria. |
system properties |
sträng | Systemegenskaper hjälper dig att identifiera innehållet och källan till meddelandena. Enhetens telemetrimeddelande måste vara i ett giltigt JSON-format med contentType inställt på JSON och contentEncoding inställt på UTF-8 i egenskaperna för meddelandesystemet. Om detta inte har angetts kommer IoT Hub att skriva meddelandena i bas 64-kodat format. |
För IoT Hub-händelser som har skapats och tagits bort av enheten innehåller dataobjektet följande egenskaper:
Property | Type | Beskrivning |
---|---|---|
twin |
objekt | Information om enhetstvillingen, som är molnrepresentationen av metadata för programenheter. |
deviceID |
sträng | Enhetstvillingens unika identifierare. |
etag |
sträng | En validerare för att säkerställa konsekvens för uppdateringar av en enhetstvilling. Varje etag är garanterat unik per enhetstvilling. |
deviceEtag |
sträng | En validerare för att säkerställa konsekvens för uppdateringar av ett enhetsregister. Varje deviceEtag är garanterat unik per enhetsregister. |
status |
sträng | Anger om enhetstvillingen är aktiverad eller inaktiverad. |
statusUpdateTime |
sträng | Den ISO8601 tidsstämpeln för den senaste enhetstvillingens statusuppdatering. |
connectionState |
sträng | Anger om enheten är ansluten eller frånkopplad. |
lastActivityTime |
sträng | Den ISO8601 tidsstämpeln för den senaste aktiviteten. |
cloudToDeviceMessageCount |
integer | Antal meddelanden från molnet till enheten som skickas till den här enheten. |
authenticationType |
sträng | Autentiseringstyp som används för den här enheten: antingen SAS , SelfSigned eller CertificateAuthority . |
x509Thumbprint |
sträng | Tumavtrycket är ett unikt värde för x509-certifikatet, som ofta används för att hitta ett visst certifikat i ett certifikatarkiv. Tumavtrycket genereras dynamiskt med sha1-algoritmen och finns inte fysiskt i certifikatet. |
primaryThumbprint |
sträng | Primärt tumavtryck för x509-certifikatet. |
secondaryThumbprint |
sträng | Sekundärt tumavtryck för x509-certifikatet. |
version |
integer | Ett heltal som ökas med en varje gång enhetstvillingen uppdateras. |
desired |
objekt | En del av egenskaperna som endast kan skrivas av programmets serverdel och läsas av enheten. |
reported |
objekt | En del av egenskaperna som endast kan skrivas av enheten och läsas av programmets serverdel. |
lastUpdated |
sträng | Den ISO8601 tidsstämpeln för den senaste enhetstvillingens egenskapsuppdatering. |
Självstudier och instruktioner
Title | Description |
---|---|
Skicka e-postaviseringar om Azure IoT Hub-händelser med logic apps | En logikapp skickar ett e-postmeddelande varje gång en enhet läggs till i din IoT Hub. |
Reagera på IoT Hub-händelser med hjälp av Event Grid för att utlösa åtgärder | Översikt över integrering av IoT Hub med Event Grid. |
Beställa enhetsanslutna händelser och enhets frånkopplade händelser | Visar hur du beställer händelser för enhetsanslutningstillstånd. |
Nästa steg
- En introduktion till Azure Event Grid finns i Vad är Event Grid?
- Mer information om hur IoT Hub och Event Grid fungerar tillsammans finns i React to IoT Hub events by using Event Grid to trigger actions (Reagera på IoT Hub-händelser genom att använda Event Grid för att utlösa åtgärder).