Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure IoT Hub se může integrovat s Azure Event Gridem, abyste mohli posílat oznámení o událostech jiným službám a aktivovat podřízené procesy. Nakonfigurujte obchodní aplikace na naslouchání událostem IoT Hubu, abyste mohli reagovat na kritické události a současně zajistili spolehlivost, škálovatelnost a zabezpečení. Například sestavíte aplikaci, která aktualizuje databázi, vytvoří pracovní lístek a doručí e-mailové oznámení pokaždé, když se do vašeho centra IoT (neboli IoT Hubu) zaregistruje nové zařízení IoT.
Azure Event Grid je plně spravovaná služba směrování událostí, která používá model publikování a odběru. Event Grid nabízí integrovanou podporu služeb Azure, jako jsou Azure Functions nebo Azure Logic Apps, a dokáže posílat upozornění na události do služeb mimo Azure s využitím webhooků. Úplný seznam obslužných rutin událostí, které Event Grid podporuje, najdete v tématu Co je Azure Event Grid?
Pokud se chcete podívat na video popisující tuto integraci, podívejte se na integraci služby Azure IoT Hub se službou Azure Event Grid.
Regionální dostupnost
Integrace Event Grid je dostupná pro centra IoT umístěná v oblastech, kde je služba Event Grid podporovaná. Nejnovější seznam oblastí najdete v tématu Produkty dostupné v jednotlivých oblastech.
Typy událostí
IoT Hub publikuje následující typy událostí:
| Typ události | Popis |
|---|---|
| Microsoft.Devices.DeviceCreated | Publikuje se při zaregistrování zařízení do centra IoT (IoT Hub). |
| Microsoft.Devices.DeviceDeleted | Publikuje se při odstranění zařízení ze centra IoT (IoT Hub). |
| Microsoft.Devices.DeviceConnected | Publikuje se při připojení zařízení k centru IoT (IoT Hub). |
| Microsoft.Devices.DeviceDisconnected | Publikuje se při odpojení zařízení od centra IoT (IoT Hub). |
| Microsoft.Devices.DeviceTelemetry | Publikováno při odeslání zprávy telemetrie zařízení do IoT Hubu. |
Ke konfiguraci událostí, které se mají publikovat z každého centra IoT, použijte Azure Portal nebo Azure CLI. Vyzkoušejte například kurz Odesílání e-mailových oznámení o událostech azure IoT Hubu pomocí Event Gridu a Logic Apps.
Schéma událostí
Události IoT Hubu obsahují všechny informace, které potřebujete k reakci na změny v životním cyklu zařízení. Událost IoT Hubu můžete identifikovat tak, že zkontrolujete, jestli vlastnost eventType začíná microsoft.Devices. Další informace o použití vlastností událostí Event Gridu najdete ve schématu událostí služby Azure Event Grid.
Schéma zařízení připojených
Následující příklad ukazuje schéma události připojené k zařízení:
[{
"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"
}]
Schéma telemetrie zařízení
Zprávy telemetrie zařízení musí být v platném formátu JSON s typem contentType nastaveným na application/json a contentEncoding nastaveným na UTF-8 ve vlastnostech systému zpráv. Tyto dvě vlastnosti nerozlišují mezi malými a velkými písmeny. Pokud kódování obsahu není nastavené, IoT Hub zapíše zprávy ve formátu kódování base 64.
Před publikováním do Event Gridu můžete rozšířit události telemetrie zařízení tak, že jako Event Grid vyberete koncový bod. Další informace najdete v tématu Rozšiřování zpráv pro zprávy IoT Hubu typu zařízení-do-cloudu.
Následující příklad ukazuje schéma události telemetrie zařízení:
[{
"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"
}]
Schéma vytvořené zařízením
Následující příklad ukazuje schéma události vytvořené zařízením:
[{
"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"
}]
Výstraha
Data dvojčat přidružená k události vytvoření zařízení jsou výchozí konfigurací a neměli byste se spoléhat na skutečné authenticationType a další vlastnosti zařízení v nově vytvořeném zařízení. Pro vlastnosti nově vytvořeného zařízení, včetně authenticationType a dalších vlastností zařízení, použijte rozhraní API správce registru, které poskytují sady SDK pro Azure IoT.
Podrobný popis jednotlivých vlastností najdete ve službě Azure IoT Hub jako zdroj Event Gridu.
Filtrování událostí
Event Grid umožňuje filtrovat typy událostí, předměty a datový obsah. Při vytváření odběru služby Event Grid se můžete rozhodnout přihlásit k odběru vybraných událostí IoT.
- Typ události: Seznam typů událostí ioT Hubu najdete v tématu Typy událostí.
- Předmět: Pro události ioT Hubu je předmětem název zařízení. Předmět má formát
devices/{deviceId}. Předměty můžete filtrovat na základě shody Začíná na (předpona) a Končí na (přípona). Filtr využívá operátorAND, takže události s předmětem, který odpovídá jak předponě, tak příponě, jsou doručovány odběrateli. - Datový obsah: IoT Hub naplní datový obsah pomocí formátu zprávy. Na základě obsahu zprávy telemetrie můžete zvolit, které události se doručí. Příklady najdete v části Rozšířené filtrování. Pro filtrování textu zprávy telemetrie je nutné nastavit contentType na application/json a contentEncoding na UTF-8 ve vlastnostech systému zpráv. Obě tyto vlastnosti neberou ohled na malá a velká písmena.
Pro události telemetrie zařízení ioT Hub vytvoří výchozí trasu zpráv s názvem RouteToEventGrid na základě předplatného. Pokud chcete filtrovat zprávy před odesláním telemetrických dat, aktualizujte směrovací dotaz.
Omezení událostí stavu připojení zařízení
Události připojené k zařízení a odpojené zařízení jsou k dispozici pro zařízení, která se připojují pomocí protokolu MQTT nebo AMQP, nebo pomocí některého z těchto protokolů přes WebSockets. Požadavky provedené pouze pomocí protokolu HTTPS neaktivují oznámení o stavu připojení zařízení.
Další informace o monitorování stavu zařízení pomocí Event Gridu najdete v tématu Monitorování stavu připojení zařízení.
Interval stavu připojení zařízení
IoT Hub se pokusí hlásit každou událost změny stavu připojení zařízení, ale některé se můžou zmeškat. IoT Hub minimálně hlásí události změny stavu připojení, ke kterým dochází 60 sekund od sebe. Toto chování může vést k výsledkům, jako je několik událostí připojení zařízení hlášených bez událostí odpojení zařízení.
Tipy pro využívání událostí
Aplikace, které zpracovávají události IoT Hubu, by měly fungovat v souladu s následujícími doporučenými postupy:
- Je možné nakonfigurovat více odběrů na směrování událostí na stejnou obslužnou rutinu událostí, takže nepředpokládejte, že události pocházejí z konkrétního zdroje. Vždy zkontrolujte téma zprávy, abyste zajistili, že pochází z očekávaného centra IoT (IoT Hub).
- Nepředpokládejte, že všechny přijímané události představují typ, který očekáváte. Před zpracováním zprávy vždy zkontrolujte vlastnost eventType.
- Zprávy se můžou doručovat v odlišném pořadí nebo se zpožděním. Pole etag vám umožní zjistit, jestli jsou vaše informace o objektech aktuální pro události vytvoření nebo odstranění zařízení.