Delen via


Azure IoT Hub als event grid-bron

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

Beschikbare gebeurtenistypen

Azure IoT Hub verzendt de volgende gebeurtenistypen:

Gebeurtenistype Beschrijving
Microsoft.Devices.DeviceCreated Gepubliceerd wanneer een apparaat wordt 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 een apparaat wordt verwijderd uit een IoT-hub.
Microsoft.Devices.DeviceTelemetry Gepubliceerd wanneer een telemetriebericht wordt verzonden naar een IoT-hub.

Voorbeeld van een gebeurtenis

De schema's voor de gebeurtenissen Device Verbinding maken ed en DeviceDisconnected hebben dezelfde structuur. Deze voorbeeldgebeurtenis toont het schema van een gebeurtenis die wordt gegenereerd wanneer een apparaat is verbonden met een IoT-hub:

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

De DeviceTelemetry-gebeurtenis wordt gegenereerd wanneer een telemetrie-gebeurtenis naar een IoT Hub wordt verzonden. Hieronder ziet u een voorbeeldschema voor deze gebeurtenis.

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

De schema's voor DeviceCreated- en DeviceDeleted-gebeurtenissen hebben dezelfde structuur. Deze voorbeeldgebeurtenis toont het schema van een gebeurtenis die wordt gegenereerd wanneer een apparaat is geregistreerd bij een IoT-hub:

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

Eigenschappen van gebeurtenis

Alle gebeurtenissen bevatten dezelfde gegevens op het hoogste niveau:

Eigenschap Type Omschrijving
id tekenreeks Unieke id voor de gebeurtenis.
source 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.
type tekenreeks Een van de geregistreerde gebeurtenistypen voor deze gebeurtenisbron.
time tekenreeks Het tijdstip waarop de gebeurtenis wordt gegenereerd op basis van de UTC-tijd van de provider.
data object IoT Hub-gebeurtenisgegevens.
specversion tekenreeks CloudEvents schemaspecificatieversie.

Voor alle IoT Hub-gebeurtenissen bevat het gegevensobject de volgende eigenschappen:

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

De inhoud van het gegevensobject verschilt voor elke gebeurtenisuitgever.

Voor gebeurtenissen van apparaat Verbinding maken ed en Apparaat disconnected IoT Hub bevat het gegevensobject de volgende eigenschappen:

Eigenschap Type Omschrijving
moduleId tekenreeks De unieke id van de module. Dit veld is alleen uitvoer voor moduleapparaten. Deze hoofdlettergevoelige tekenreeks kan maximaal 128 tekens lang zijn en ondersteunt ASCII 7-bits alfanumerieke tekens plus de volgende speciale tekens: - : . + % _ # * ? ! ( ) , = @ ; $ '
deviceConnectionStateEventInfo object Gebeurtenisinformatie over apparaatverbindingsstatus
sequenceNumber tekenreeks Een getal dat helpt de volgorde aan te geven van gebeurtenissen die zijn verbonden met het apparaat of het apparaat is verbroken. De laatste gebeurtenis heeft een volgnummer dat hoger is dan de vorige gebeurtenis. Dit aantal kan met meer dan 1 veranderen, maar wordt strikt verhoogd. Zie hoe u het volgnummer gebruikt.

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

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

Voor ioT Hub-gebeurtenissen die door het apparaat zijn gemaakt en verwijderd , bevat het gegevensobject de volgende eigenschappen:

Eigenschap Type Description
twin object Informatie over de apparaatdubbel, de cloudweergave van metagegevens van het toepassingsapparaat.
deviceID tekenreeks De unieke id van de apparaatdubbel.
etag tekenreeks Een validatie voor het waarborgen van de consistentie van updates voor een apparaatdubbel. Elke etag is gegarandeerd uniek per apparaatdubbel.
deviceEtag tekenreeks Een validatie voor het garanderen van de consistentie van updates voor een apparaatregister. Elke deviceEtag is gegarandeerd uniek per apparaatregister.
status tekenreeks Geeft aan of de apparaatdubbel is ingeschakeld of uitgeschakeld.
statusUpdateTime tekenreeks De ISO8601 tijdstempel van de laatste update van de status van de apparaatdubbel.
connectionState tekenreeks Geeft aan of het apparaat is verbonden of verbroken.
lastActivityTime tekenreeks De ISO8601 tijdstempel van de laatste activiteit.
cloudToDeviceMessageCount geheel getal Het aantal cloud-naar-apparaatberichten dat naar dit apparaat is verzonden.
authenticationType tekenreeks Verificatietype dat wordt gebruikt voor dit apparaat: ofwel SAS, SelfSignedof CertificateAuthority.
x509Thumbprint tekenreeks De vingerafdruk is een unieke waarde voor het x509-certificaat, dat vaak wordt gebruikt om een bepaald certificaat in een certificaatarchief 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 steeds wordt verhoogd wanneer de apparaatdubbel wordt bijgewerkt.
desired object Een deel van de eigenschappen die alleen door de back-end van de toepassing kunnen worden geschreven en die door het apparaat kunnen worden gelezen.
reported object Een deel van de eigenschappen die alleen door het apparaat kunnen worden geschreven en die door de back-end van de toepassing kunnen worden gelezen.
lastUpdated tekenreeks De ISO8601 tijdstempel van de laatste update van de eigenschap apparaatdubbel.

Zelfstudies en handleidingen

Title Beschrijving
E-mailmeldingen verzenden over Azure IoT Hub-gebeurtenissen met behulp van Logic Apps Een logische app verzendt een meldings-e-mail telkens wanneer een apparaat wordt toegevoegd aan uw IoT Hub.
Reageren op IoT Hub-gebeurtenissen met event grid om acties te activeren Overzicht van de integratie van IoT Hub met Event Grid.
Gebeurtenissen van verbonden apparaten en niet-verbonden apparaten bestellen Hier ziet u hoe u gebeurtenissen van de apparaatverbindingsstatus kunt orden.

Volgende stappen