Sdílet prostřednictvím


Rozšiřování zpráv pro zprávy IoT Hub ze zařízení do cloudu

Rozšiřování zpráv je schopnost centra IoT označit zprávy dalšími informacemi před odesláním zpráv do určeného koncového bodu. Jedním z důvodů, proč použít rozšiřování zpráv, je zahrnout data, která lze použít ke zjednodušení zpracování v podřízené části. Například obohacení telemetrických zpráv zařízení značkou dvojčete zařízení může snížit zatížení zákazníků, kteří by jinak museli volat rozhraní API dvojčete zařízení pro tyto informace.

Vývojový diagram, který popisuje směrování rozšířené zprávy telemetrie zařízení

Obohacení zpráv má tři klíčové prvky:

  • Název nebo klíč rozšíření

  • Hodnota

  • Jeden nebo více koncových bodů , pro které se má rozšíření použít.

Klíč je řetězec. Klíč může obsahovat pouze alfanumerické znaky nebo tyto speciální znaky: spojovník (-), podtržítko (_) a tečku (.).

Hodnota může být libovolná z následujících příkladů:

  • Libovolný statický řetězec. Dynamické hodnoty, jako jsou podmínky, logika, operace a funkce, nejsou povolené. Pokud například vyvíjíte aplikaci SaaS, kterou používá několik zákazníků, můžete každému zákazníkovi přiřadit identifikátor a zpřístupnit ho v aplikaci. Když se aplikace spustí, IoT Hub označí zprávy telemetrie zařízení identifikátorem zákazníka, aby bylo možné zpracovávat zprávy pro každého zákazníka jinak.

  • Název ioT Hubu, který zprávu odesílá. Tato hodnota je $iothubname.

  • Informace z digitálního dvojčete zařízení, jako je její cesta. Příklady mohou být $twin.tags.field a $twin.tags.latitude.

    Poznámka:

    V tuto chvíli jsou podporovány pouze proměnné $iothubname, $twin.tags, $twin.properties.desired a $twin.properties.reported pro rozšiřování zpráv. Kromě toho jsou pro rozšiřování podporovány pouze primitivní typy. Zprávy nelze rozšířit o typy objektů.

Rozšíření zpráv se přidají jako vlastnosti aplikace do zpráv odesílaných do vybraných koncových bodů.

Použití obohacení

Zprávy mohou pocházet z libovolného zdroje dat podporovaného směrováním zpráv IoT Hub, včetně následujících příkladů:

  • telemetrie zařízení, jako je teplota nebo tlak
  • oznámení o změně zařízení Device Twin – změny v zařízení Device Twin
  • Události životního cyklu zařízení, například při vytvoření nebo odstranění zařízení

Rozšíření můžete přidat ke zprávám, které směřují do integrovaného koncového bodu služby IoT Hub, nebo ke zprávám, které jsou směrovány do vlastních koncových bodů, jako je Azure Blob Storage, fronta Service Bus nebo téma Service Bus.

Můžete také přidat do zpráv publikovaných do Event Gridu vylepšení tím, že nejprve vytvoříte odběr s typem zpráv telemetrie zařízení. Na základě tohoto předplatného vytvoříme výchozí trasu ve službě Azure IoT Hub pro telemetrii. Tato jedna trasa dokáže zpracovat všechna vaše předplatná Event Gridu. Pak můžete nakonfigurovat obohacení zpráv pro koncový bod pomocí karty obohacení zpráv v části směrování zpráv služby IoT Hub. Informace o reakci na události pomocí Event Gridu najdete v tématu Reakce na události služby IoT Hub pomocí Event Gridu k aktivaci akcí.

Pro každý koncový bod se použijí rozšíření. Pokud pro konkrétní koncový bod zadáte pět rozšiřování, budou všechny zprávy, které do daného koncového bodu přijdou, označeny stejnými pěti rozšiřováními.

Rozšiřování je možné nakonfigurovat pomocí následujících metod:

Metoda Příkaz
Portal Azure Portal
Další pokyny najdete v návodu: Použití obohacení zpráv v Azure IoT Hubu.
Azure CLI (příkazový řádek nástroje Azure) az IoT Hub Message-enrichment
Azure PowerShell Add-AzIotHubMessageEnrichment

Přidání obohacení zpráv nepřidává latenci do směrování zpráv.

Pokud si chcete vyzkoušet rozšiřování zpráv, přečtěte si kurz: Použití rozšíření zpráv služby Azure IoT Hub

Omezení

  • Pro tato centra na úrovni Standard nebo Basic můžete přidat až 10 rozšíření na jedno centrum IoT. Pro centra IoT na úrovni Free můžete přidat až dvě rozšíření.

  • V některých případech se hodnota označí zadanou cestou dvojčete zařízení, pokud zprávu obohačíte hodnotou nastavenou na značku nebo vlastnost dvojčete zařízení. Pokud je například hodnota obohacení nastavena jako $twin.tags.field, zprávy jsou opatřeny řetězcem "$twin.tags.field", nikoli hodnotou toho pole z twin. K tomuto chování dochází v následujících případech:

    • Vaše centrum IoT je na úrovni Basic. IoT Huby úrovně Basic nepodporují dvojčata zařízení.

    • Centrum IoT je ve standardní úrovni, ale cesta dvojčete zařízení používaná pro hodnotu rozšiřování neexistuje. Pokud je například hodnota rozšíření nastavená na $twin.tags.location a dvojče zařízení nemá vlastnost location v části tags, zpráva se označí řetězcem "$twin.tags.location".

    • Vaše IoT centrum je v úrovni Standard, ale cesta pro device twin použitá pro hodnotu obohacení se vyhodnotí jako objekt, nikoli jako jednoduchá vlastnost. Pokud je například hodnota rozšíření nastavena na $twin.tags.location a vlastnost location v části tagy je objekt, který obsahuje podřízené vlastnosti, jako je {"building": 43, "room": 503}, zpráva je označena řetězcem "$twin.tags.location".

  • Aktualizace zařízení twin mohou trvat až pět minut, než se projeví v odpovídající hodnotě rozšíření.

  • Celková velikost zprávy včetně rozšíření nesmí překročit 256 kB. Pokud velikost zprávy překročí 256 kB, centrum IoT zprávu zahodí. Metriky IoT Hub můžete použít k identifikaci a ladění chyb při zahození zpráv. V metrikách směrování můžete například monitorovat metriku nekompatibilní se zprávami telemetrie (d2c.telemetry.egress.invalid). Další informace najdete v tématu Monitorování služby Azure IoT Hub.

  • Rozšiřování zpráv se nevztahuje na události změn digitálního dvojčete.

  • Moduly nedědí značky dvojčat ze svých odpovídajících zařízení. Rozšiřování zpráv pocházejících z modulů zařízení (například z modulů IoT Edge) musí používat tagy dvojčete, které jsou konfigurované v dvojčeti modulu.

Stanovení cen

Rozšíření zpráv je k dispozici bez dalších poplatků. V současné době se vám účtují poplatky při odeslání zprávy do služby IoT Hub. Za tuto zprávu se vám účtuje jenom jednou, a to i v případě, že zpráva odešle do více koncových bodů.

Další kroky

Další informace o směrování zpráv do služby IoT Hub najdete v těchto článcích: