Dela via


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, SelfSignedeller 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