Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az Azure IoT Hub és az Azure Event Grid integrációja révén eseményekkel kapcsolatos értesítéseket küldhet más szolgáltatásokba, és alsóbb rétegbeli folyamatokat aktiválhat. Üzleti alkalmazásait úgy konfigurálhatja, hogy figyeljék az IoT Hub-eseményeket, így megbízható, skálázható és biztonságos módon reagálhat a kritikus eseményekre. Készíthet például olyan alkalmazást, amely frissít egy adatbázist, létrehoz egy munkajegyet és e-mail-értesítést küld minden alkalommal, amikor új IoT-eszközt regisztrálnak az IoT-központba.
Az Azure Event Grid egy teljes körűen felügyelt esemény-útválasztási szolgáltatás, amely közzétételi-előfizetési modellt használ. Az Event Grid beépített támogatást nyújt az olyan Azure szolgáltatásokhoz, mint az Azure Functions és az Azure Logic Apps, és képes eseményriasztásokat küldeni nem-Azure szolgáltatásoknak webhorgok használatával. Az Event Grid által támogatott eseménykezelők teljes listájáért lásd : Mi az Azure Event Grid?.
Az integrációt tárgyaló videó megtekintéséhez tekintse meg az Azure IoT Hub és az Azure Event Grid integrációját ismertető videót.
Regionális rendelkezésre állás
Az Event Grid-integráció az Event Gridet támogató régiókban található IoT Hubok esetében érhető el. A régiók legújabb listájáért tekintse meg a régiók szerint elérhető termékeket.
Eseménytípusok
Az IoT Hub a következő eseménytípusokat teszi közzé:
Esemény típusa | Leírás |
---|---|
Microsoft.Devices.EszközLétrehozva | Egy eszköz IoT-központba regisztrálásakor van közzétéve. |
Microsoft.Eszközök.EszközTörölve | 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 | Közzétéve, amikor az eszköz telemetriai üzenetét elküldik egy IoT Hubnak |
Az Azure Portal vagy az Azure CLI használatával konfigurálhatja, hogy mely eseményeket tegye közzé az egyes IoT Hubokból. Például próbálja ki az Oktatóanyag e-mail-értesítések küldése az Azure IoT Hub-eseményekről az Event Grid és a Logic Apps használatával.
Eseményséma
Az IoT Hub-események tartalmazzák az eszköz életciklusának változásaira való reagáláshoz szükséges összes információt. Az IoT Hub-események azonosításához ellenőrizze, hogy az eventType tulajdonság a Microsoft.Devices szolgáltatással kezdődik-e. Az Event Grid eseménytulajdonságainak használatáról további információt az Azure Event Grid eseménysémában talál.
Eszközhöz csatlakoztatott séma
Az alábbi példa egy eszközhöz csatlakoztatott esemény sémáját mutatja be:
[{
"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"
}]
Eszköz telemetriai sémája
Az eszköz telemetriai üzeneteinek érvényes JSON-formátumban kell lenniük, és az üzenetrendszer tulajdonságaiban a contentType értéke application/json, a contentEncoding pedig UTF-8. Mindkét tulajdonság nem érzékeny a kis- és nagybetűkre. Ha a tartalomkódolás nincs beállítva, akkor az IoT Hub a 64-es alapformátumban írja az üzeneteket.
A végpont Event Gridként való kiválasztásával bővítheti az eszköz telemetriai eseményeit, mielőtt közzétennénk őket az Event Gridben. További információkért tekintse meg az eszközről a felhőbe irányuló IoT Hub-üzenetek üzeneteinek kibővítése című témakört.
Az alábbi példa egy eszköz telemetriai esemény sémáját mutatja be:
[{
"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"
}]
Eszköz által létrehozott séma
Az alábbi példa egy eszköz által létrehozott esemény sémáját mutatja be:
[{
"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"
}]
Figyelmeztetés
Az eszközlétrehozási eseményhez társított ikeradatok alapértelmezett konfigurációk, és nem szabad az újonnan létrehozott eszköz tényleges authenticationType
és egyéb eszköztulajdonságaira támaszkodni. Az authenticationType
újonnan létrehozott eszközökhöz és egyéb eszköztulajdonságokhoz használja az Azure IoT SDK-kban biztosított Register Manager API-t.
Az egyes tulajdonságok részletes leírását az Azure IoT Hub mint Event Grid-forrás tartalmazza.
Események szűrése
Az Event Grid lehetővé teszi az eseménytípusok, témák és adattartalmak szűrését . Az Event Grid-előfizetés létrehozásakor dönthet úgy, hogy feliratkozik a kiválasztott IoT-eseményekre.
- Esemény típusa: Az IoT Hub-eseménytípusok listájához tekintse meg az eseménytípusokat.
- Tárgy: Az IoT Hub-események esetében a tárgy az eszköz neve. A tárgy formátumot
devices/{deviceId}
vesz fel. Szűrheti a témaköröket a "Kezdődik ezzel" (előtag) és a "Végződik ezzel" (utótag) egyezések alapján. A szűrő operátortAND
használ, így az előtagnak és az utótagnak megfelelő tárgyú eseményeket a rendszer kézbesíti az előfizetőnek. - Adattartalom: Az IoT Hub az üzenetformátum használatával tölti ki az adattartalmat. A telemetriai üzenet tartalma alapján kiválaszthatja, hogy mely események érkeznek. Példák: Speciális szűrés. A telemetriai üzenettörzs szűréséhez a contentType értéket application/json és contentEncoding értékre kell állítania az üzenetrendszer tulajdonságai között UTF-8 értékre. Mindkét tulajdonság kis- és nagybetű érzéketlen.
Eszköztelemetriaesemények esetén az IoT Hub létrehozza az alapértelmezett RouteToEventGridüzenetútvonalat az előfizetés alapján. Ha a telemetriai adatok elküldése előtt szeretné szűrni az üzeneteket, frissítse az útválasztási lekérdezést.
Az eszközkapcsolati állapot eseményeinek korlátozásai
Az eszközhöz csatlakoztatott és az eszközről leválasztott események az MQTT vagy AMQP protokollt használó, vagy a WebSocketeken keresztüli protokollokat használó eszközök számára érhetők el. A csak HTTPS-lel küldött kérések nem aktiválják az eszköz kapcsolati állapotának értesítéseit.
További információ az eszköz állapotának az Event Griddel való monitorozásáról: Eszközkapcsolat állapotának figyelése.
Eszközkapcsolat állapotának időköze
Az IoT Hub megpróbálja jelenteni az egyes eszközkapcsolati állapotváltozási eseményeket, de előfordulhat, hogy néhány kimarad. Az IoT Hub legalább akkor jelent kapcsolatállapot-változási eseményeket, ha azok 60 másodperc különbséggel következnek be egymástól. Ez a viselkedés olyan kimenetelekhez vezethet, mint például több eszközcsatlakozási esemény, amely között nincsenek eszközleválasztási események.
Tippek események felhasználásához
Az IoT Hub-eseményeket kezelő alkalmazásokkal érdemes figyelembe venni az alábbi javaslatokat:
- Több feliratkozás is konfigurálható úgy, hogy ugyanahhoz az eseménykezelőhöz irányítsák az eseményeket, ezért nem szabad feltételezni, hogy az események egy adott forrásból származnak. Az üzenet témakörének vizsgálatával mindig ellenőrizni kell, hogy az abból az IoT-központból érkezett, ahonnan várta.
- Nem szabad feltételezni, hogy minden kapott esemény a várt típusú. Az eventType értéket mindig ellenőrizni kell az üzenet feldolgozása előtt.
- Megtörténhet, hogy az üzenetek más sorrendben, vagy késve érkeznek. Az etag mezővel megtudhatja, hogy az objektumok adatai naprakészek-e az eszköz által létrehozott vagy eszköz által törölt eseményekhez.