Rozšiřování zpráv pro zprávy IoT Hub zařízení-cloud

Rozšiřování zpráv je schopnost služby IoT Hub orazítkovat zprávy s dalšími informacemi před odesláním zpráv do určeného koncového bodu. Jedním z důvodů, proč používat rozšiřování zpráv, je zahrnout data, která se dají použít ke zjednodušení zpracování podřízených dat. Například rozšíření zpráv telemetrie zařízení o značku dvojčete zařízení může snížit zatížení zákazníků při volání rozhraní API dvojčat zařízení pro tyto informace.

Tok rozšiřování zpráv

Rozšiřování zpráv má tři klíčové prvky:

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

  • Hodnota

  • Jeden nebo více koncových bodů , pro které by mělo být rozšíření použito.

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

Hodnotou může být kterýkoli 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ž aplikace běží, IoT Hub označí zprávy telemetrie zařízení identifikátorem zákazníka, což umožní zpracovávat zprávy pro každého zákazníka odlišně.

  • Název centra IoT odesílajícího zprávu Tato hodnota je $iothubname.

  • Informace z dvojčete zařízení, například jeho cesta. Příklady mohou být $twin.tags.field a $twin.tags.latitude.

    Poznámka

    V současnosti jsou pro rozšiřování zpráv podporované pouze proměnné $iothubname, $twin.tags, $twin.properties.desired a $twin.properties.reported. 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řidávají jako vlastnosti aplikace do zpráv odesílaných do vybraných koncových bodů.

Použití rozšiřování

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

  • telemetrie zařízení, jako je teplota nebo tlak
  • oznámení o změnách dvojčete zařízení – změny ve dvojčeti zařízení
  • události životního cyklu zařízení, například při vytvoření nebo odstranění zařízení

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

Do zpráv, které se publikují do Event Gridu, můžete také přidat rozšíření tím, že nejprve vytvoříte odběr Event Gridu s typem zprávy telemetrie zařízení. Na základě tohoto předplatného vytvoříme výchozí trasu v Azure IoT Hub pro telemetrii. Tato jediná trasa dokáže zpracovat všechny vaše odběry Event Gridu. Potom můžete nakonfigurovat rozšiřování koncového bodu pomocí karty Rozšířit zprávy v oddílu IoT Hub Směrování zpráv. Informace o reakci na události pomocí Event Gridu najdete v tématu IoT Hub a Event Grid.

Rozšiřování se aplikují na každý koncový bod. Pokud pro konkrétní koncový bod zadáte pět rozšíření, které se mají orazítkovat, všechny zprávy do daného koncového bodu se označí stejnými pěti rozšířeními.

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

Metoda Příkaz
Portál Azure Portal Projděte si kurz rozšiřování zpráv.
Azure CLI az iot hub message-enrichment
Azure PowerShell Add-AzIotHubMessageEnrichment

Přidáním rozšíření zpráv se ke směrování zpráv nezpůsobí latence.

Pokud si chcete vyzkoušet rozšiřování zpráv, projděte si kurz rozšiřování zpráv.

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ž 2 rozšíření.

  • V některých případech, pokud rozšiřujete zprávu o hodnotu nastavenou na značku nebo vlastnost ve dvojčeti zařízení, bude hodnota označena se zadanou cestou dvojčete zařízení. Pokud je například hodnota rozšiřování nastavená na $twin.tags.field, budou zprávy označeny řetězcem "$twin.tags.field" místo hodnoty tohoto pole z dvojčete. 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í.

    • Vaše centrum IoT je na úrovni Standard, ale cesta dvojčete zařízení použitá pro hodnotu rozšíření neexistuje. Pokud je například hodnota rozšiřování nastavená na $twin.tags.location a dvojče zařízení nemá vlastnost location v rámci značek, zpráva se orazítkuje řetězcem "$twin.tags.location".

    • Vaše centrum IoT je na úrovni Standard, ale cesta dvojčete zařízení použitá pro hodnotu rozšíření se překládá na objekt, nikoli na jednoduchou vlastnost. Pokud je například hodnota rozšiřování nastavená na $twin.tags.location a vlastnost location v rámci značek je objekt, který obsahuje podřízené vlastnosti, jako {"building": 43, "room": 503}je , je zpráva označena řetězcem "$twin.tags.location".

  • Aktualizace na dvojče zařízení se může v odpovídající hodnotě rozšiřování projevit až za pět minut.

  • Celková velikost zprávy, včetně rozšíření, nesmí překročit 256 kB. Pokud je velikost zprávy větší než 256 kB, centrum IoT zprávu zahodí. Metriky IoT Hub můžete použít k identifikaci a ladění chyb při zahazování zpráv. V metrikách směrování můžete například monitorovat metriku nekompatibilních zpráv telemetrie (d2c.telemetry.egress.invalid). Další informace najdete v tématu Monitorování 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 z 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 značky dvojčat, které jsou nastaveny u dvojčete modulu.

Ceny

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

Další kroky

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