Vysvětlení registru identit ve službě IoT Hub

Každé centrum IoT má registr identit, do kterého se ukládají informace o zařízeních a modulech, které se mohou připojit ke službě IoT Hub. Aby se zařízení nebo modul mohly připojit ke službě IoT Hub, musí existovat záznam pro toto zařízení nebo modul v registru identit služby IoT Hub. Zařízení nebo modul se musí také ověřit ve službě IoT Hub na základě přihlašovacích údajů uložených v registru identit.

V ID zařízení nebo modulu uloženém v registru identit se rozlišují velká a malá písmena.

Registr identit je na vysoké úrovni kolekcí prostředků identit zařízení nebo modulu s podporou REST. Když přidáte položku do registru identit, IoT Hub vytvoří sadu prostředků pro jednotlivá zařízení, například frontu, která obsahuje zprávy typu cloud-zařízení.

Registr identit použijte, když potřebujete:

  • Zřiďte zařízení nebo moduly, které se připojují k centru IoT.
  • Řízení přístupu k zařízení nebo modulům vašeho centra nebo koncovým bodům, které jsou přístupné k modulům.

Operace registru identit

Registr identit IoT Hub zveřejňuje následující operace:

  • Vytvoření identity zařízení nebo modulu
  • Aktualizace identity zařízení nebo modulu
  • Načtení identity zařízení nebo modulu podle ID
  • Odstranění identity zařízení nebo modulu
  • Výpis až 1000 identit
  • Export identit zařízení do úložiště objektů blob v Azure
  • Import identit zařízení ze služby Azure Blob Storage

Všechny tyto operace mohou používat optimistickou souběžnost, jak je uvedeno v dokumentu RFC7232.

Důležité

Jediným způsobem, jak načíst všechny identity v registru identit služby IoT Hub, je použít funkci Export .

Registr identit IoT Hub:

  • Neobsahuje žádná metadata aplikace.

Důležité

Registr identit používejte jenom pro operace správy a zřizování zařízení. Operace s vysokou propustností za běhu by neměly záviset na provádění operací v registru identit. Například kontrola stavu připojení zařízení před odesláním příkazu není podporovaným vzorem. Nezapomeňte zkontrolovat míru omezování pro registr identit.

Poznámka

Po vytvoření může trvat několik sekund, než bude identita zařízení nebo modulu dostupná pro načtení. V případě selhání opakujte get operaci identit zařízení nebo modulů.

Zakázání zařízení

Zařízení můžete zakázat aktualizací vlastnosti status identity v registru identit. Obvykle se tato vlastnost používá ve dvou scénářích:

  • Během procesu orchestrace zřizování. Další informace najdete v tématu Device Provisioning.

  • Pokud si myslíte, že zařízení je ohroženo nebo se z nějakého důvodu stalo neoprávněným.

Tato funkce není dostupná pro moduly.

Import a export identit zařízení

K hromadnému exportu identit zařízení z registru identit služby IoT Hub použijte asynchronní operace na koncovém bodu poskytovatele prostředků IoT Hub. Exporty jsou dlouhotrvající úlohy, které používají kontejner objektů blob dodaný zákazníkem k ukládání dat identit zařízení načtených z registru identit.

K hromadnému importu identit zařízení do registru identit služby IoT Hub použijte asynchronní operace na koncovém bodu poskytovatele prostředků IoT Hub. Importy jsou dlouhotrvající úlohy, které používají data v kontejneru objektů blob dodaném zákazníkem k zápisu dat identity zařízení do registru identit.

Další informace o rozhraních API pro import a export najdete v tématu rozhraní REST API IoT Hub poskytovatele prostředků. Další informace o spouštění úloh importu a exportu najdete v tématu Hromadná správa identit IoT Hub zařízení.

Identity zařízení je také možné exportovat a importovat z IoT Hub prostřednictvím rozhraní API služby buď prostřednictvím rozhraní REST API, nebo jedné ze sad SDK služby IoT Hub.

Zřizování zařízení

Data zařízení, která dané řešení IoT ukládá, závisí na konkrétních požadavcích tohoto řešení. Řešení ale musí minimálně ukládat identity zařízení a ověřovací klíče. Azure IoT Hub obsahuje registr identit, který může ukládat hodnoty pro každé zařízení, jako jsou ID, ověřovací klíče a stavové kódy. Řešení může k ukládání jakýchkoli dalších dat zařízení používat jiné služby Azure, jako je Table Storage, Blob Storage nebo Azure Cosmos DB.

Zřizování zařízení je proces přidání počátečních dat zařízení do úložišť ve vašem řešení. Pokud chcete novému zařízení povolit připojení k centru, musíte do registru identit IoT Hub přidat ID zařízení a klíče. V rámci procesu zřizování může být potřeba inicializovat data specifická pro zařízení v jiných úložištích řešení. Můžete také použít službu Azure IoT Hub Device Provisioning a povolit tak bezdotykové zřizování za běhu pro jedno nebo více center IoT bez nutnosti zásahu člověka. Další informace najdete v dokumentaci ke službě zřizování.

Oznámení o životním cyklu zařízení a modulů

IoT Hub můžete řešení IoT upozornit na vytvoření nebo odstranění identity zařízení odesláním oznámení o životním cyklu. K tomu musí vaše řešení IoT vytvořit trasu a nastavit zdroj dat na hodnotu DeviceLifecycleEvents. Ve výchozím nastavení se neposílají žádná oznámení o životním cyklu, to znamená, že žádné takové trasy neexistují. Vytvořením trasy se zdrojem dat, který se rovná DeviceLifecycleEvents, se události životního cyklu odesílají pro identity zařízení i identity modulů. Obsah zprávy se však bude lišit v závislosti na tom, jestli se události vygenerují pro identity modulů nebo identit zařízení. Je třeba poznamenat, že u IoT Edge modulů se tok vytvoření identity modulu liší od ostatních modulů. V důsledku toho se u IoT Edge modulů oznámení o vytvoření odešle pouze v případě, že je spuštěné odpovídající IoT Edge zařízení pro aktualizovanou identitu modulu IoT Edge. U všech ostatních modulů se oznámení o životním cyklu odesílají vždy, když se identita modulu aktualizuje na straně IoT Hub. Další informace o vlastnostech a textu vrácených ve zprávě oznámení najdete v tématu Schémata událostí bez telemetrie.

Vlastnosti identity zařízení

Identity zařízení jsou reprezentované jako dokumenty JSON s následujícími vlastnostmi:

Vlastnost Možnosti Description
deviceId povinné, u aktualizací jen pro čtení Řetězec rozlišující velká a malá písmena (až 128 znaků) obsahující 7bitové alfanumerické znaky ASCII a některé speciální znaky: - . + % _ # * ? ! ( ) , : = @ $ '.
generationId povinné, jen pro čtení Řetězec vygenerovaný službou IoT Hub, který rozlišuje velká a malá písmena o délce až 128 znaků. Tato hodnota se používá k rozlišení zařízení se stejným id zařízení, když byla odstraněna a znovu vytvořena.
Etag povinné, jen pro čtení Řetězec představující slabou značku ETag pro identitu zařízení podle RFC7232.
ověřování optional Složený objekt obsahující ověřovací informace a bezpečnostní materiály. Další informace najdete v tématu Mechanismus ověřování v dokumentaci k rozhraní REST API.
možnosti optional Sada možností zařízení. Například jestli je zařízení hraničním zařízením, nebo ne. Další informace najdete v tématu Možnosti zařízení v dokumentaci k rozhraní REST API.
deviceScope optional Rozsah zařízení. V hraničních zařízeních se automaticky generují a neměnné. Zastaralé v hraničních zařízeních. V podřízených (listových) zařízeních však nastavte tuto vlastnost na stejnou hodnotu jako vlastnost parentScopes ( deviceScope nadřazeného zařízení) kvůli zpětné kompatibilitě s předchozími verzemi rozhraní API. Další informace najdete v tématu IoT Edge jako brána: Vztahy nadřazenosti a podřízenosti.
parentScopes optional Rozsah přímého nadřazeného zařízení podřízeného zařízení (hodnota vlastnosti deviceScope nadřazeného zařízení). V hraničních zařízeních je hodnota prázdná, pokud zařízení nemá žádný nadřazený objekt. V jiných než hraničních zařízeních vlastnost neexistuje, pokud zařízení nemá žádný nadřazený objekt. Další informace najdete v tématu IoT Edge jako brána: Vztahy nadřazenosti a podřízenosti.
status vyžadováno Indikátor přístupu. Může být Povoleno nebo Zakázáno. Pokud je povoleno, zařízení se může připojit. Pokud je zakázáno, toto zařízení nemá přístup k žádnému koncovému bodu zařízení.
stavReason optional Řetězec dlouhý 128 znaků, ve kterém je uložen důvod stavu identity zařízení. Jsou povoleny všechny znaky UTF-8.
statusUpdateTime jen pro čtení Dočasný indikátor zobrazující datum a čas poslední aktualizace stavu.
connectionState jen pro čtení Pole označující stav připojení: Připojeno nebo Odpojeno. Toto pole představuje IoT Hub zobrazení stavu připojení zařízení. Důležité: Toto pole by se mělo používat jenom pro účely vývoje a ladění. Stav připojení se aktualizuje jenom pro zařízení používající MQTT nebo AMQP. Je také založen na příkazech ping na úrovni protokolu (příkazy ping MQTT nebo ping AMQP) a může mít maximální zpoždění pouze 5 minut. Z těchto důvodů můžou existovat falešně pozitivní výsledky, například zařízení nahlášená jako připojená, ale odpojená.
connectionStateUpdatedTime jen pro čtení Dočasný indikátor zobrazující datum a čas poslední aktualizace stavu připojení.
lastActivityTime jen pro čtení Dočasný indikátor zobrazující datum a čas, kdy se zařízení připojilo, přijalo nebo odeslalo zprávu. Tato vlastnost je nakonec konzistentní, ale může se zpozdit až o 5 až 10 minut. Z tohoto důvodu by se neměl používat v produkčních scénářích.

Poznámka

Stav připojení může představovat pouze IoT Hub zobrazení stavu připojení. Aktualizace do tohoto stavu může být zpožděno v závislosti na podmínkách a konfiguraci sítě.

Poznámka

Sady SDK zařízení v současné době nepodporují použití + znaků a # v id zařízení.

Vlastnosti identity modulu

Identity modulů jsou reprezentované jako dokumenty JSON s následujícími vlastnostmi:

Vlastnost Možnosti Description
deviceId povinné, u aktualizací jen pro čtení Řetězec rozlišující velká a malá písmena (až 128 znaků) obsahující 7bitové alfanumerické znaky ASCII a některé speciální znaky: - . + % _ # * ? ! ( ) , : = @ $ '.
moduleId povinné, u aktualizací jen pro čtení Řetězec rozlišující velká a malá písmena (až 128 znaků) obsahující 7bitové alfanumerické znaky ASCII a některé speciální znaky: - . + % _ # * ? ! ( ) , : = @ $ '.
generationId povinné, jen pro čtení Řetězec vygenerovaný službou IoT Hub, který rozlišuje velká a malá písmena o délce až 128 znaků. Tato hodnota slouží k rozlišení zařízení se stejným id zařízení, když se odstranila a znovu vytvořila.
Etag povinné, jen pro čtení Řetězec představující slabou značku ETag pro identitu zařízení podle RFC7232.
ověřování optional Složený objekt obsahující ověřovací informace a bezpečnostní materiály. Další informace najdete v tématu Mechanismus ověřování v dokumentaci k rozhraní REST API.
managedBy optional Určuje, kdo tento modul spravuje. Tato hodnota je například "IoT Edge", pokud modul runtime Edge vlastní tento modul.
cloudToDeviceMessageCount jen pro čtení Počet aktuálně zařazených zpráv typu cloud-modul do fronty, které se mají odeslat do modulu.
connectionState jen pro čtení Pole označující stav připojení: Připojeno nebo Odpojeno. Toto pole představuje IoT Hub zobrazení stavu připojení zařízení. Důležité: Toto pole by se mělo používat jenom pro účely vývoje a ladění. Stav připojení se aktualizuje jenom pro zařízení používající MQTT nebo AMQP. Je také založen na příkazech ping na úrovni protokolu (příkazy ping MQTT nebo ping AMQP) a může mít maximální zpoždění pouze 5 minut. Z těchto důvodů můžou existovat falešně pozitivní výsledky, například zařízení nahlášená jako připojená, ale odpojená.
connectionStateUpdatedTime jen pro čtení Dočasný indikátor zobrazující datum a čas poslední aktualizace stavu připojení.
lastActivityTime jen pro čtení Dočasný indikátor zobrazující datum a čas, kdy se zařízení připojilo, přijalo nebo odeslalo zprávu.

Poznámka

Sady SDK zařízení v současné době nepodporují použití + znaků a # v id zařízení a moduleId.

Další referenční materiály

Mezi další referenční články v příručce pro vývojáře IoT Hub patří:

  • IoT Hub koncové body popisují různé koncové body, které každé centrum IoT zpřístupňuje pro běhové operace a operace správy.

  • Omezení a kvóty popisují kvóty a chování omezování, které se vztahují na službu IoT Hub.

  • Sady SDK pro zařízení a služby Azure IoT uvádějí různé jazykové sady SDK, které můžete použít při vývoji aplikací zařízení i služeb, které pracují s IoT Hub.

  • IoT Hub dotazovací jazyk popisuje dotazovací jazyk, který můžete použít k načtení informací z IoT Hub o dvojčatech a úlohách zařízení.

  • IoT Hub podpora MQTT poskytuje další informace o podpoře IoT Hub pro protokol MQTT.

Další kroky

Teď, když jste se naučili používat registr identit IoT Hub, by vás mohly zajímat následující články s IoT Hub příručkou pro vývojáře:

Pokud si chcete vyzkoušet některé z konceptů popsaných v tomto článku, projděte si následující IoT Hub kurz:

Pokud chcete prozkoumat použití služby IoT Hub Device Provisioning k povolení zřizování za běhu bez dotykového ovládání, přečtěte si: