Azure IoT Hub als een Event Grid bron

Dit artikel bevat de eigenschappen en het schema voor Azure IoT Hub gebeurtenissen. Zie Gebeurtenisschema's maken voor Azure Event Grid inleiding tot gebeurtenisschema's.

Beschikbare gebeurtenistypen

Azure IoT Hub de volgende gebeurtenistypen:

Gebeurtenistype Beschrijving
Microsoft.Devices.DeviceCreated Gepubliceerd wanneer een apparaat is geregistreerd bij een IoT-hub.
Microsoft.Devices.DeviceDeleted Gepubliceerd wanneer een apparaat wordt verwijderd uit een IoT-hub.
Microsoft.Devices.DeviceConnected Gepubliceerd wanneer een apparaat is verbonden met een IoT-hub.
Microsoft.Devices.DeviceDisconnected Gepubliceerd wanneer de verbinding van een apparaat met een IoT-hub wordt verbroken.
Microsoft.Devices.DeviceTelemetry Gepubliceerd wanneer een telemetriebericht wordt verzonden naar een IoT-hub.

Voorbeeldgebeurtenis

Het schema voor de gebeurtenissen DeviceConnected en DeviceDisconnected hebben dezelfde structuur. Deze voorbeeldgebeurtenis toont het schema van een gebeurtenis die zich voordeed wanneer een apparaat is verbonden met een IoT-hub:

[{
  "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" 
}]

De DeviceTelemetry-gebeurtenis wordt verhoogd wanneer een telemetriegebeurtenis wordt verzonden naar een IoT Hub. Hieronder wordt een voorbeeldschema voor deze gebeurtenis weergegeven.

[{
  "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"
}]

Het schema voor de gebeurtenissen DeviceCreated en DeviceDeleted hebben dezelfde structuur. Deze voorbeeldgebeurtenis toont het schema van een gebeurtenis die zich voordeed wanneer een apparaat is geregistreerd bij een IoT-hub:

[{
  "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"
}]

Gebeurteniseigenschappen

Alle gebeurtenissen bevatten dezelfde gegevens op het hoogste niveau:

Eigenschap Type Description
id tekenreeks De unieke id voor de gebeurtenis.
topic tekenreeks Volledig resourcepad naar de gebeurtenisbron. Dit veld kan niet worden geschreven. Event Grid biedt deze waarde.
subject tekenreeks Het door de uitgever gedefinieerde pad naar het gebeurtenisonderwerp.
eventType tekenreeks Een van de geregistreerde gebeurtenistypen voor deze gebeurtenisbron.
eventTime tekenreeks De tijd dat de gebeurtenis wordt gegenereerd op basis van de UTC-tijd van de provider.
data object IoT Hub gebeurtenisgegevens.
dataVersion tekenreeks De schemaversie van het gegevensobject. De uitgever definieert de schemaversie.
metadataVersion tekenreeks De schemaversie van de metagegevens van de gebeurtenis. Event Grid definieert het schema voor de eigenschappen op het hoogste niveau. Event Grid biedt deze waarde.

Voor alle IoT Hub bevat het gegevensobject de volgende eigenschappen:

Eigenschap Type Description
hubName tekenreeks Naam van de IoT Hub waar het apparaat is gemaakt of verwijderd.
deviceId tekenreeks De unieke id van het apparaat. Deze hoofd-gevoelige tekenreeks kan maximaal 128 tekens lang zijn en ondersteunt 7-bits ASCII-alfanumerieke tekens plus de volgende speciale tekens: - : . + % _ # * ? ! ( ) , = @ ; $ ' .

De inhoud van het gegevensobject verschilt per gebeurtenisuitgever.

Voor gebeurtenissen voor Apparaat verbonden en Apparaat IoT Hub verbroken, bevat het gegevensobject de volgende eigenschappen:

Eigenschap Type Description
moduleId tekenreeks De unieke id van de module. Dit veld is alleen uitvoer voor moduleapparaten. Deze hoofdtekenreeks kan maximaal 128 tekens lang zijn en ondersteunt 7-bits ASCII-alfanumerieke tekens plus de volgende speciale tekens: - : . + % _ # * ? ! ( ) , = @ ; $ ' .
deviceConnectionStateEventInfo object Gebeurtenisgegevens van apparaatverbindingstoestand
sequenceNumber tekenreeks Een getal waarmee de volgorde wordt aangegeven van gebeurtenissen die zijn verbonden met het apparaat of de verbinding met het apparaat is verbroken. De laatste gebeurtenis heeft een reeksnummer dat hoger is dan de vorige gebeurtenis. Dit aantal kan met meer dan 1 veranderen, maar neemt strikt toe. Bekijk hoe u het volgnummer gebruikt.

Voor apparaattelemetrie en IoT Hub bevat het gegevensobject het apparaat-naar-cloud-bericht in IoT Hub-berichtindeling en heeft het de volgende eigenschappen:

Eigenschap Type Description
body tekenreeks De inhoud van het bericht van het apparaat.
properties tekenreeks Toepassingseigenschappen zijn door de gebruiker gedefinieerde tekenreeksen die aan het bericht kunnen worden toegevoegd. Deze velden zijn optioneel.
system properties tekenreeks Systeemeigenschappen helpen bij het identificeren van inhoud en de bron van de berichten. Het telemetriebericht van het apparaat moet een geldige JSON-indeling hebben, met contentType ingesteld op JSON en contentEncoding ingesteld op UTF-8 in de eigenschappen van het berichtsysteem. Als dit niet is ingesteld, IoT Hub de berichten in de met base 64 gecodeerde indeling.

Voor Apparaat gemaakt en Apparaat verwijderd IoT Hub gebeurtenissen bevat het gegevensobject de volgende eigenschappen:

Eigenschap Type Beschrijving
twin object Informatie over de apparaat dubbel, de cloudweergave van metagegevens van toepassingsapparaat.
deviceID tekenreeks De unieke id van de apparaat dubbel.
etag tekenreeks Een validatie voor het garanderen van consistentie van updates voor een apparaat dubbel. Elke etag is gegarandeerd uniek per apparaattwee.
deviceEtag tekenreeks Een validatie voor het garanderen van consistentie van updates in een apparaatregister. Elke deviceEtag is gegarandeerd uniek per apparaatregister.
status tekenreeks Of de apparaat dubbel is ingeschakeld of uitgeschakeld.
statusUpdateTime tekenreeks De ISO8601-tijdstempel van de laatste update van de status van de apparaattweer.
connectionState tekenreeks Of het apparaat is verbonden of de verbinding is verbroken.
lastActivityTime tekenreeks Het ISO8601-tijdstempel van de laatste activiteit.
cloudToDeviceMessageCount geheel getal Aantal cloud-naar-apparaat-berichten dat naar dit apparaat is verzonden.
authenticationType tekenreeks Verificatietype dat voor dit apparaat wordt gebruikt: SAS SelfSigned , of CertificateAuthority .
x509Thumbprint tekenreeks De vingerafdruk is een unieke waarde voor het x509-certificaat, dat vaak wordt gebruikt om een bepaald certificaat in een certificaatopslag te vinden. De vingerafdruk wordt dynamisch gegenereerd met behulp van het SHA1-algoritme en bestaat niet fysiek in het certificaat.
primaryThumbprint tekenreeks Primaire vingerafdruk voor het x509-certificaat.
secondaryThumbprint tekenreeks Secundaire vingerafdruk voor het x509-certificaat.
version geheel getal Een geheel getal dat met één wordt verhoogd telkens wanneer de apparaatt dubbel wordt bijgewerkt.
desired object Een deel van de eigenschappen dat alleen kan worden geschreven door de back-end van de toepassing en kan worden gelezen door het apparaat.
reported object Een deel van de eigenschappen dat alleen door het apparaat kan worden geschreven en gelezen door de back-end van de toepassing.
lastUpdated tekenreeks Het ISO8601-tijdstempel van de laatste update van de eigenschap van de apparaattwee.

Zelfstudies en handleidingen

Titel Beschrijving
E-mailmeldingen over gebeurtenissen van Azure IoT Hub verzenden met Logic Apps Een logische app verzendt een e-mailmelding telkens wanneer een apparaat wordt toegevoegd aan uw IoT Hub.
React gebeurtenissen IoT Hub met behulp van Event Grid om acties te activeren Overzicht van het integreren IoT Hub met Event Grid.
Gebeurtenissen voor verbonden apparaten en verbroken apparaat bestellen Laat zien hoe u gebeurtenissen voor de apparaatverbindingstoestand kunt orden.

Volgende stappen

  • Zie Wat is Event Grid? voor een inleiding tot Azure Event Grid.
  • Voor meer informatie over hoe IoT Hub en Event Grid samenwerken, React IoT Hub gebeurtenissen met behulp van Event Grid om acties te activeren.