Azure IoT Hub som Event Grid källa

Den här artikeln innehåller egenskaper och scheman för Azure IoT Hub händelser. En introduktion till händelsescheman finns i Azure Event Grid händelseschema .

Tillgängliga händelsetyper

Azure IoT Hub följande händelsetyper:

Händelsetyp Beskrivning
Microsoft.Devices.DeviceCreated Publiceras när en enhet registreras på 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 bort från en IoT-hubb.
Microsoft.Devices.DeviceTelemetry Publiceras när ett telemetrimeddelande skickas till en IoT-hubb.

Exempelhändelse

Schemat för händelserna DeviceConnected och DeviceDisconnected har samma struktur. Den här exempelhändelsen visar schemat för en händelse som utlöses när en enhet är ansluten till en IoT-hubb:

[{
  "id": "f6bbf8f4-d365-520d-a878-17bf7238abd8", 
  "topic": "/SUBSCRIPTIONS/<subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>", 
  "subject": "devices/LogicAppTestDevice", 
  "eventType": "Microsoft.Devices.DeviceConnected", 
  "eventTime": "2018-06-02T19:17:44.4383997Z", 
  "data": {
    "deviceConnectionStateEventInfo": {
      "sequenceNumber":
        "000000000000000001D4132452F67CE200000002000000000000000000000001"
    },
    "hubName": "egtesthub1",
    "deviceId": "LogicAppTestDevice",
    "moduleId" : "DeviceModuleID"
  }, 
  "dataVersion": "1", 
  "metadataVersion": "1" 
}]

DeviceTelemetry-händelsen utlöses 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",
  "topic": "/SUBSCRIPTIONS/<subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>", 
  "subject": "devices/LogicAppTestDevice", 
  "eventType": "Microsoft.Devices.DeviceTelemetry",
  "eventTime": "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"        
        }    
    },
  "dataVersion": "",
  "metadataVersion": "1"
}]

Schemat för händelserna DeviceCreated och DeviceDeleted har samma struktur. Den här exempelhändelsen visar schemat för en händelse som utlöses när en enhet registreras på en IoT-hubb:

[{
  "id": "56afc886-767b-d359-d59e-0da7877166b2",
  "topic": "/SUBSCRIPTIONS/<subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>",
  "subject": "devices/LogicAppTestDevice",
  "eventType": "Microsoft.Devices.DeviceCreated",
  "eventTime": "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"
  },
  "dataVersion": "1",
  "metadataVersion": "1"
}]

Händelseegenskaper

Alla händelser innehåller samma data på den översta nivån:

Egenskap Typ Description
id sträng Unik identifierare för händelsen.
topic 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.
eventType sträng En av de registrerade händelsetyperna för den här händelsekällan.
eventTime sträng Den tid då händelsen genereras baserat på leverantörens UTC-tid.
data objekt IoT Hub händelsedata.
dataVersion sträng Dataobjektets schemaversion. Utgivaren definierar schemaversion.
metadataVersion sträng Schemaversionen av händelsens metadata. Event Grid definierar schemat för de översta egenskaperna. Event Grid ger det här värdet.

För alla IoT Hub-händelser innehåller dataobjektet följande egenskaper:

Egenskap Typ Description
hubName sträng Namnet på IoT Hub där enheten skapades eller togs bort.
deviceId sträng Enhetens unika identifierare. Den här case-känsliga strängen kan vara upp till 128 tecken lång och stöder ASCII 7-bitars alfanumeriska tecken plus följande specialtecken: - : . + % _ # * ? ! ( ) , = @ ; $ ' .

Innehållet i dataobjektet är olika för varje händelseutgivare.

Dataobjektet innehåller följande egenskaper IoT Hub enhetsanslutna och frånkopplade enheter:

Egenskap Typ Description
moduleId sträng Den unika identifieraren för modulen. Det här fältet är endast utdata för modulenheter. Den här case-känsliga strängen kan vara upp till 128 tecken lång och stöder ASCII 7-bitars alfanumeriska tecken plus följande specialtecken: - : . + % _ # * ? ! ( ) , = @ ; $ ' .
deviceConnectionStateEventInfo objekt Händelseinformation om enhetsanslutningstillstånd
sequenceNumber sträng Ett nummer som hjälper till att ange ordningen på enhetsanslutna eller 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 sekvensnumret.

För device telemetry IoT Hub-händelse innehåller dataobjektet meddelandet enhet till moln i IoT Hub-meddelandeformat och har följande egenskaper:

Egenskap Typ 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. De här fälten är valfria.
system properties sträng Systemegenskaper hjälper till att identifiera innehållet och källan för 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 meddelandesystemets egenskaper. Om detta inte anges skriver IoT Hub meddelanden i base 64-kodat format.

Dataobjektet innehåller följande egenskaper IoT Hub enhetsskapade och borttagna enheter:

Egenskap Typ Description
twin objekt Information om enhetstvillingen, som är molnrepresentationen av programmets enhetsmetadata.
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 Om enhetstvillingen är aktiverad eller inaktiverad.
statusUpdateTime sträng ISO8601-tidsstämpeln för den senaste uppdateringen av enhetstvillingens status.
connectionState sträng Om enheten är ansluten eller frånkopplad.
lastActivityTime sträng ISO8601-tidsstämpeln för den senaste aktiviteten.
cloudToDeviceMessageCount heltal Antal meddelanden från molnet till enheten som skickats till den här enheten.
authenticationType sträng Autentiseringstyp som används för den här enheten: SAS SelfSigned antingen , 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 hjälp av 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 heltal Ett heltal som ökas med ett varje gång enhetstvillingen uppdateras.
desired objekt En del av egenskaperna som endast kan skrivas av programmets backend-enhet och läsas av enheten.
reported objekt En del av egenskaperna som endast kan skrivas av enheten och läsas av programmets backend-enhet.
lastUpdated sträng Tidsstämpeln ISO8601 för den senaste uppdateringen av enhetstvillingens egenskap.

Självstudier och instruktioner

Rubrik Beskrivning
Skicka e-postmeddelanden om Azure IoT Hub-händelser med hjälp av Logic Apps En logikapp skickar ett e-postmeddelande varje gång en enhet läggs till i IoT Hub.
React att IoT Hub händelser med hjälp av Event Grid utlösa åtgärder Översikt över integrering IoT Hub med Event Grid.
Beställa enhetsanslutna och frånkopplade enhetshändelser Visar hur du beställer enhetsanslutningstillståndshändelser.

Nästa steg