Sdílet prostřednictvím


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 Basic a Standard/Free IoT Hub najdete v tématu Volba správné úrovně a velikosti služby IoT Hub 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
  • Centra událostí
  • 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 tématu Správa tras a koncových bodů pomocí webu Azure Portal.

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ádět ú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, můžete použít různé metody ověřování v závislosti na vašich požadavcích na zabezpečení:

  • Ověřování založené na klíčích: Pomocí připojovacích řetězců můžete ověřovat koncové body v různých předplatných nebo dokonce v různých tenantech. Tato metoda používá pro ověřování přístupové klíče koncového bodu nebo připojovací řetězce.

  • Spravovaná identita přiřazená uživatelem: Pro lepší zabezpečení můžete službu IoT Hub nakonfigurovat jako důvěryhodnou službu Microsoftu a k ověřování použít spravovanou identitu přiřazenou uživatelem. Tato metoda vyžaduje konfiguraci spravované identity před vytvořením vlastního koncového bodu.

Další informace o ověřování spravovaných identit najdete v tématu Odchozí připojení ze služby IoT Hub k další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í má následující vlastnosti:

Nemovitost / Majetek Popis
Jméno Jedinečný název, který identifikuje dotaz.
Source Původ datového proudu, se kterým se bude pracovat. Například telemetrie zařízení.
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.
Koncový bod 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ě služba 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. Pokud zpráva odpovídá více dotazům, které mají stejný cíl, Služba IoT Hub ji do daného cíle doručí jenom jednou.

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

Čtení směrovaných dat

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. Jakmile je vytvořena jakákoli trasa, tok dat se zastaví k integrovanému koncovému bodu, pokud k tomuto koncovému bodu není vytvořena trasa. Pokud nejsou k dispozici žá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 na stránce 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 FallbackRouteProperties.

Události mimo telemetrii

Kromě telemetrie zařízení umožňuje směrování zpráv také odesílání netelemetrických událostí, 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 je například vytvořena trasa se zdrojem dat nastaveným na Změnové události zařízení dvojčete, IoT Hub odesílá zprávy na koncový bod, které obsahují změnu v dvojčeti 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 o událostech životního cyklu zařízení naleznete v části Oznámení o životním cyklu zařízení a modulů.

Při použití Azure IoT 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, když je digitální dvojče nahrazeno, 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í. Pokud chcete zjistit, která služba je pro váš scénář nejvhodnější, podívejte se na rozdíly mezi směrováním zpráv a Event Gridem.

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 o stavu připojení zařízení, musí zařízení po otevření připojení buď zavolat operaci příjmu zpráv z cloudu do 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.

Latency

Když směrujete telemetrické zprávy z zařízení do cloudu, po vytvoření první trasy se mírně zvýší end-to-end latence.

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 mezi koncovými body.

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.