Megosztás a következőn keresztül:


Az Azure IoT Hub mint Event Grid-forrás

Ez a cikk az Azure IoT Hub-események tulajdonságait és sémáját ismerteti. Az eseménysémákról az Azure Event Grid eseményséma című témakörben olvashat.

Elérhető eseménytípusok

Az Azure IoT Hub a következő eseménytípusokat bocsátja ki:

Eseménytípus Leírás
Microsoft.Devices.DeviceCreated Egy eszköz IoT-központba regisztrálásakor van közzétéve.
Microsoft.Devices.DeviceDeleted Egy eszköz IoT-központból való törlésekor van közzétéve.
Microsoft.Devices.DeviceConnected Egy eszköz IoT-központhoz csatlakoztatásakor van közzétéve.
Microsoft.Devices.DeviceDisconnected Egy eszköz IoT-központról való leválasztásakor van közzétéve.
Microsoft.Devices.DeviceTelemetry Telemetriaüzenet IoT Hubra való küldésekor jelenik meg.

Példaesemény

Az Eszköz Csatlakozás és a DeviceDisconnected események sémái ugyanazzal a struktúrával rendelkeznek. Ez a mintaesemény egy olyan esemény sémáját mutatja be, amely akkor merül fel, amikor egy eszköz IoT Hubhoz csatlakozik:

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

A DeviceTelemetry esemény akkor jön létre, amikor a rendszer telemetriai eseményt küld egy IoT Hubnak. Az eseményhez tartozó mintaséma alább látható.

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

A DeviceCreated és a DeviceDeleted események sémái ugyanazzal a struktúrával rendelkeznek. Ez a mintaesemény egy olyan esemény sémáját mutatja be, amely akkor merült fel, amikor egy eszköz regisztrálva van egy IoT Hubon:

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

Esemény tulajdonságai

Minden esemény ugyanazokat a legfelső szintű adatokat tartalmazza:

Tulajdonság Típus Leírás
id húr Az esemény egyedi azonosítója.
source húr Az eseményforrás teljes erőforrás-elérési útja. Ez a mező nem írható. Az értéket az Event Grid adja meg.
subject húr Az esemény tárgyra mutató, a közzétevő által megadott elérési út.
type húr Az eseményforráshoz felvett eseménytípusok egyike.
time húr Az esemény létrehozásának időpontja a szolgáltató UTC-ideje alapján.
data object IoT Hub-eseményadatok.
specversion húr A CloudEvents sémaspecifikációs verziója.

Az összes IoT Hub-esemény esetében az adatobjektum a következő tulajdonságokat tartalmazza:

Tulajdonság Típus Leírás
hubName húr Annak az IoT Hubnak a neve, ahol az eszközt létrehozták vagy törölték.
deviceId húr Az eszköz egyedi azonosítója. Ez a kis- és nagybetűk megkülönböztetése legfeljebb 128 karakter hosszúságú lehet, és támogatja az ASCII 7 bites alfanumerikus karaktereket, valamint a következő speciális karaktereket: - : . + % _ # * ? ! ( ) , = @ ; $ '.

Az adatobjektum tartalma minden esemény közzétevője esetében eltérő.

Az eszköz Csatlakozás és az eszközről leválasztott IoT Hub-események esetében az adatobjektum a következő tulajdonságokat tartalmazza:

Tulajdonság Típus Leírás
moduleId húr A modul egyedi azonosítója. Ez a mező csak moduleszközökhöz készült kimenet. Ez a kis- és nagybetűk megkülönböztetése legfeljebb 128 karakter hosszúságú lehet, és támogatja az ASCII 7 bites alfanumerikus karaktereket, valamint a következő speciális karaktereket: - : . + % _ # * ? ! ( ) , = @ ; $ '.
deviceConnectionStateEventInfo object Eszközkapcsolat állapotának eseményadatai
sequenceNumber húr Egy szám, amely jelzi a csatlakoztatott eszköz vagy az eszköz leválasztott eseményeinek sorrendjét. A legújabb esemény sorszáma magasabb lesz, mint az előző esemény. Ez a szám 1-nél többel változhat, de szigorúan növekszik. Megtudhatja , hogyan használhatja a sorszámot.

Az IoT Hub-esemény eszköztelemetria esetén az adatobjektum az IoT Hub üzenetformátumában tartalmazza az eszközről a felhőbe üzenetet, és a következő tulajdonságokkal rendelkezik:

Tulajdonság Típus Leírás
body húr Az eszközről érkező üzenet tartalma.
properties húr Az alkalmazástulajdonságok felhasználó által definiált sztringek, amelyek hozzáadhatók az üzenethez. Ezek a mezők nem kötelezőek.
system properties húr A rendszertulajdonságok segítenek azonosítani az üzenetek tartalmát és forrását. Az eszköz telemetriai üzenetének érvényes JSON-formátumban kell lennie, a contentType értéke JSON, a contentEncoding pedig UTF-8 értékre van állítva az üzenetrendszer tulajdonságaiban. Ha ez nincs beállítva, akkor az IoT Hub a 64-es alapformátumban fogja írni az üzeneteket.

Az eszköz által létrehozott és az eszköz által törölt IoT Hub-események esetében az adatobjektum a következő tulajdonságokat tartalmazza:

Tulajdonság Típus Leírás
twin object Információk az ikereszközről, amely az alkalmazáseszköz metaadatainak felhőalapú ábrázolása.
deviceID húr Az ikereszköz egyedi azonosítója.
etag húr Az ikereszköz frissítéseinek konzisztenciájának biztosításához használható érvényesítő. Az egyes etagek garantáltan egyediek lesznek ikereszközenként.
deviceEtag húr Az eszközregisztrációs adatbázis frissítéseinek konzisztenciájának biztosításához használható érvényesítő. Minden deviceEtag garantáltan egyedi lesz eszközregisztrációs adatbázisonként.
status húr Azt jelzi, hogy az ikereszköz engedélyezve vagy letiltva van-e.
statusUpdateTime húr Az ikereszköz legutóbbi állapotfrissítésének ISO8601 időbélyege.
connectionState húr Azt jelzi, hogy az eszköz csatlakoztatva vagy leválasztva van-e.
lastActivityTime húr Az utolsó tevékenység ISO8601 időbélyege.
cloudToDeviceMessageCount egész szám Az eszközre küldött felhőbeli üzenetek száma.
authenticationType húr Az eszközhöz használt hitelesítési típus: vagy SAS, SelfSignedvagy CertificateAuthority.
x509Thumbprint húr Az ujjlenyomat az x509-tanúsítvány egyedi értéke, amelyet gyakran használnak egy adott tanúsítvány megkeresésére egy tanúsítványtárolóban. Az ujjlenyomat dinamikusan jön létre az SHA1 algoritmussal, és fizikailag nem létezik a tanúsítványban.
primaryThumbprint húr Az x509-tanúsítvány elsődleges ujjlenyomata.
secondaryThumbprint húr Az x509-tanúsítvány másodlagos ujjlenyomata.
version egész szám Egy egész szám, amely az ikereszköz minden frissítésekor egy-egyvel növekszik.
desired object A tulajdonságok egy része, amelyet csak az alkalmazás háttérrendszere írhat, és amelyet az eszköz olvas.
reported object A tulajdonságok egy része, amelyet csak az eszköz írhat, és amelyet az alkalmazás háttérrendszere olvas.
lastUpdated húr Az ikereszköz legutóbbi tulajdonságfrissítésének ISO8601 időbélyege.

Oktatóanyagok és útmutatók

Cím Leírás
E-mail-értesítések küldése az Azure IoT Hub-eseményekről a Logic Apps használatával A logikai alkalmazások minden alkalommal küldenek értesítési e-mailt, amikor egy eszközt hozzáadnak az IoT Hubhoz.
Reagáljon az IoT Hub-eseményekre az Event Grid használatával a műveletek aktiválásához Az IoT Hub és az Event Grid integrálásának áttekintése.
Csatlakoztatott eszköz és az eszköz leválasztott eseményeinek megrendelése Az eszköz kapcsolati állapotának eseményeinek megrendelését mutatja be.

Következő lépések