Použití směrování zpráv služby IoT Hub k odesílání zpráv ze zařízení do cloudu do služeb Azure

Směrování zpráv umožňuje odesílat zprávy ze zařízení do cloudových služeb automatizovaným, škálovatelným a spolehlivým způsobem. Směrování zpráv se dá použít k:

  • Odesílání zpráv a událostí telemetrie zařízení do integrovaného koncového bodu a vlastních koncových bodů Události, které lze směrovat, zahrnují události životního cyklu zařízení, události změny dvojčete zařízení, události změn digitálního dvojčete a události stavu připojení zařízení.

  • Data můžete filtrovat před jejich směrováním pomocí bohatých dotazů. Směrování zpráv umožňuje dotazovat se na vlastnosti zprávy a text zprávy a také na značky dvojčete zařízení a vlastnosti dvojčete zařízení. Další informace najdete v dotazech ve směrování zpráv.

IoT Hub definuje společný formát pro všechny zasílání zpráv typu zařízení-cloud pro interoperabilitu napříč protokoly. Další informace najdete v tématu Vytváření a čtení zpráv ioT Hubu.

Poznámka:

Některé funkce uvedené v tomto článku, jako je zasílání zpráv z cloudu do zařízení, dvojčata zařízení a správa zařízení, jsou k dispozici ve službě IoT Hub pouze na úrovni Standard. Další informace o úrovních Služby IoT Hub úrovně Basic a Standard/Free najdete v tématu Volba správné úrovně IoT Hubu pro vaše řešení.

Koncové body směrování

Každé centrum IoT má výchozí koncový bod směrování označovaný jako zprávy nebo události , které jsou kompatibilní se službou Event Hubs. Můžete také vytvořit vlastní koncové body, které odkazují na jiné služby ve vašem předplatném Azure.

IoT Hub aktuálně podporuje následující koncové body pro směrování zpráv:

  • Integrovaný koncový bod
  • Kontejnery úložiště
  • Fronty služby Service Bus
  • Témata služby Service Bus
  • Event Hubs
  • Cosmos DB

Další informace o každém z těchto koncových bodů najdete v tématu Koncové body služby IoT Hub.

Každá zpráva se směruje do všech koncových bodů, jejichž směrovací dotazy odpovídají, což znamená, že zprávu je možné směrovat do více koncových bodů. Pokud ale zpráva odpovídá více trasám, které odkazují na stejný koncový bod, Služba IoT Hub zprávu do tohoto koncového bodu doručí pouze jednou.

IoT Hub potřebuje k těmto koncovým bodům služby přístup pro zápis, aby směrování zpráv fungovalo. Pokud nakonfigurujete koncové body prostřednictvím webu Azure Portal, přidají se pro vás potřebná oprávnění. Pokud koncové body konfigurujete pomocí PowerShellu nebo Azure CLI, musíte zadat oprávnění pro přístup k zápisu.

Informace o vytváření koncových bodů najdete v následujících článcích:

Ujistěte se, že služby nakonfigurujete tak, aby podporovaly očekávanou propustnost. Pokud například používáte službu Event Hubs jako vlastní koncový bod, musíte pro toto centrum událostí nakonfigurovat jednotky propustnosti, aby bylo možné zpracovat příchozí přenos událostí, které plánujete odesílat přes směrování zpráv ioT Hubu. Podobně při použití fronty Service Bus jako koncového bodu musíte nakonfigurovat maximální velikost , aby fronta zajistila, že fronta může obsahovat všechna příchozí přenos dat, dokud nebude výchozí přenos dat příjemci. Při první konfiguraci řešení IoT možná budete muset monitorovat ostatní koncové body a provést potřebné úpravy skutečného zatížení.

Pokud má váš vlastní koncový bod konfiguraci brány firewall, zvažte použití výjimky důvěryhodné první strany Od Microsoftu .

Směrování na koncový bod v jiném předplatném

Pokud je prostředek koncového bodu v jiném předplatném, než je vaše centrum IoT, musíte před vytvořením vlastního koncového bodu nakonfigurovat centrum IoT jako důvěryhodnou službu Microsoftu. Když vytvoříte vlastní koncový bod, nastavte typ ověřování na identitu přiřazenou uživatelem.

Další informace najdete v tématu Odchozí připojení ze služby IoT Hub k jiným prostředkům Azure.

Dotazy směrování

Směrování zpráv ioT Hubu poskytuje možnost dotazování na filtrování dat před jejich směrováním do koncových bodů. Každý dotaz směrování, který nakonfigurujete, má následující vlastnosti:

Vlastnost Popis
Jméno Jedinečný název, který identifikuje dotaz.
Source Původ datového proudu, na který se má jednat. Například telemetrie zařízení.
Condition (Podmínka) Výraz dotazu pro směrovací dotaz, který se spouští ve vlastnostech aplikace zpráv, systémových vlastnostech, textu zprávy, značkách dvojčete zařízení a vlastnostech dvojčete zařízení, abyste zjistili, jestli se jedná o shodu pro koncový bod.
Endpoint Název koncového bodu, ve kterém IoT Hub odesílá zprávy, které odpovídají dotazu. Doporučujeme zvolit koncový bod ve stejné oblasti jako centrum IoT.

Jedna zpráva může odpovídat podmínce u více dotazů směrování, v takovém případě ioT Hub zprávu doručí do koncového bodu přidruženého k jednotlivým odpovídajícím dotazům. IoT Hub také automaticky deduplikuje doručování zpráv, takže pokud zpráva odpovídá více dotazům, které mají stejný cíl, zapíše se do tohoto cíle jenom jednou.

Další informace najdete v tématu Syntaxe dotazů směrování zpráv služby IoT Hub.

Čtení dat, která byla směrována

V následujících článcích se dozvíte, jak číst zprávy z koncového bodu.

Náhradní trasa

Náhradní trasa odesílá všechny zprávy, které nesplňují podmínky dotazu na žádné z existujících tras do integrovaného koncového bodu (zprávy/události), které jsou kompatibilní se službou Event Hubs. Pokud je povolené směrování zpráv, můžete povolit funkci náhradní trasy. Po vytvoření jakékoli trasy se data zastaví do integrovaného koncového bodu, pokud se do daného koncového bodu nevytvořila trasa. Pokud neexistují žádné trasy k integrovanému koncovému bodu a je povolená náhradní trasa, budou se do integrovaného koncového bodu odesílat jenom zprávy, které neodpovídají žádným podmínkám dotazu na trasy. I když se odstraní všechny existující trasy, musí být funkce náhradní trasy povolená, aby přijímala všechna data v integrovaném koncovém bodu.

Náhradní trasu můžete povolit nebo zakázat na webu Azure Portal v okně Směrování zpráv. K použití vlastního koncového bodu pro náhradní trasu můžete také použít Azure Resource Manager pro náhradní trasu.

Události mimo telemetrii

Kromě telemetrie zařízení umožňuje směrování zpráv také odesílání událostí, které nejsou telemetrií, včetně:

  • Události změny dvojčete zařízení
  • Události životního cyklu zařízení
  • Události životního cyklu úloh zařízení
  • Události změn digitálního dvojčete
  • Události stavu připojení zařízení

Pokud se například vytvoří trasa se zdrojem dat nastaveným na události změny dvojčete zařízení, Služba IoT Hub odesílá zprávy do koncového bodu, který obsahuje změnu dvojčete zařízení. Podobně pokud je trasa vytvořená se zdrojem dat nastaveným na události životního cyklu zařízení, IoT Hub odešle zprávu, která indikuje, jestli bylo zařízení nebo modul odstraněné nebo vytvořené. Další informace oudálostch

Při použití azure IoT technologie Plug and Play může vývojář vytvořit trasy se zdrojem dat nastaveným na události změn digitálního dvojčete a IoT Hub odesílá zprávy pokaždé, když je nastavena nebo změněna vlastnost digitálního dvojčete, nahradí se digitální dvojče nebo když dojde k události změny u podkladového dvojčete zařízení. A konečně, pokud je trasa vytvořená se zdrojem dat nastaveným na události stavu připojení zařízení, IoT Hub odešle zprávu, která indikuje, jestli bylo zařízení připojené nebo odpojené.

IoT Hub se také integruje s Azure Event Gridem a publikuje události zařízení za účelem podpory integrací v reálném čase a automatizaci pracovních postupů na základě těchto událostí. Podívejte se na klíčové rozdíly mezi směrováním zpráv a službou Event Grid , abyste zjistili, která je pro váš scénář nejvhodnější.

Omezení událostí stavu připojení zařízení

Události stavu připojení 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í. Aby služba IoT Hub začala odesílat události stavu připojení zařízení, musí po otevření připojení zařízení volat operaci příjmu zpráv typu cloud-zařízení nebo operaci odesílání telemetrie ze zařízení do cloudu. Mimo sady SDK Azure IoT se v MQTT tyto operace shodují s operacemi PŘIHLÁŠENÍ K ODBĚRu nebo PUBLIKOVÁNÍ v příslušných tématech zasílání zpráv. Přes AMQP se tyto operace připojují nebo přenesou zprávu na příslušných cestách propojení. Další informace najdete v následujících článcích:

IoT Hub nehlásí každou jednotlivou událost připojení a odpojení zařízení, ale publikuje aktuální stav připojení pořízený v pravidelných 60sekundových snímkách. Příjem jedné události stavu připojení s různými pořadovými čísly nebo různými událostmi stavu připojení znamená, že během 60sekundového okna došlo ke změně stavu připojení zařízení.

Testování tras

Když vytvoříte novou trasu nebo upravíte existující trasu, měli byste otestovat dotaz trasy s ukázkovou zprávou. Můžete testovat jednotlivé trasy nebo testovat všechny trasy najednou a během testu se do koncových bodů nesměrují žádné zprávy. K testování je možné použít Azure Portal, Azure Resource Manager, Azure PowerShell a Azure CLI. Výsledky pomáhají identifikovat, jestli se ukázková zpráva shodovala nebo neodpovídala dotazu, nebo pokud se test nepovedlo spustit, protože ukázková zpráva nebo syntaxe dotazu jsou nesprávné. Další informace najdete v tématu Testovací trasa a otestování všech tras.

Latence

Když směrujete telemetrické zprávy typu zařízení-cloud, po vytvoření první trasy se mírně zvýší latence mezi koncovými body.

Ve většině případů je průměrné zvýšení latence menší než 500 milisekund. Latence, kterou máte, se ale může lišit a může být vyšší v závislosti na úrovni vašeho centra IoT a vaší architektuře řešení. Latenci můžete monitorovat pomocí směrování: latence zpráv pro zprávy/události nebo metriky d2c.endpoints.latency.builtIn.events IoT Hub. Vytvoření nebo odstranění jakékoli trasy po první trase nemá vliv na latenci od začátku do konce.

Monitorování a odstraňování potíží

IoT Hub poskytuje několik metrik souvisejících se směrováním a koncovými body, abyste získali přehled o stavu vašeho centra a odesílaných zpráv. Můžete také sledovat chyby, ke kterým dochází při vyhodnocování stavu dotazu směrování a koncového bodu, jak služba IoT Hub považuje za kategorii tras v protokolech prostředků IoT Hubu. Další informace o používání metrik a protokolů prostředků se službou IoT Hub najdete v tématu Monitorování služby Azure IoT Hub.

Stav koncových bodů můžete získat pomocí rozhraní REST API Get Endpoint Health .

Další podrobnosti o řešení potíží se směrováním a související informace o podpoře najdete v průvodci odstraňováním potíží se směrováním.