Koncepty opětovného zřízení zařízení ve službě IoT Hub
Během životního cyklu řešení IoT je běžné přesouvat zařízení mezi ioT Huby. Mezi důvody tohoto přesunu patří následující scénáře:
Geografická poloha / GeoLatency: Při přesouvání zařízení mezi umístěními se zlepšuje latence sítě tím, že se zařízení migruje do blíže centra IoT.
Víceklientská architektura: Zařízení může být použito ve stejném řešení IoT a znovu přiřazeno novému zákazníkovi nebo webu zákazníka. Tento nový zákazník může být obsluhován pomocí jiného centra IoT.
Změna řešení: Zařízení může být přesunuto do nového nebo aktualizovaného řešení IoT. Toto opětovné přiřazení může vyžadovat, aby zařízení komunikuje s novým centrem IoT, které je připojené k jiným back-endovým komponentám.
Karanténa: Podobá se změně řešení. Zařízení, které nefunguje správně, je ohroženo nebo zastaralé, může být znovu přiřazené k centru IoT, které může aktualizovat a vrátit zpět dodržování předpisů. Jakmile zařízení funguje správně, pak se migruje zpět do hlavního rozbočovače.
Podpora opětovného zřízení ve službě Device Provisioning řeší tyto potřeby. Zařízení se dají automaticky znovu přiřadit k novým centrem IoT na základě zásad opětovného zřízení nakonfigurovaných v položce registrace zařízení.
Data o stavu zařízení
Data o stavu zařízení se skládají z možností dvojčete zařízení a zařízení. Tato data jsou uložená v instanci služby Device Provisioning a v centru IoT, ke kterému je zařízení přiřazeno.
Při počátečním zřízení zařízení s instancí služby Device Provisioning se provádí následující kroky:
Zařízení odešle požadavek na zřizování do instance služby Device Provisioning. Instance služby ověřuje identitu zařízení na základě položky registrace a vytvoří počáteční konfiguraci dat o stavu zařízení. Instance služby přiřadí zařízení k centru IoT na základě konfigurace registrace a vrátí přiřazení centra IoT k zařízení.
Instance služby zřizování poskytuje kopii všech počátečních dat o stavu zařízení do přiřazeného centra IoT. Zařízení se připojí k přiřazené službě IoT Hub a zahájí operace.
Data o stavu zařízení v centru IoT můžou být v průběhu času aktualizována operacemi zařízení a back-endovými operacemi. Počáteční informace o stavu zařízení uložené v instanci služby Device Provisioning zůstanou nedotčené. Tato nedotčená data o stavu zařízení jsou počáteční konfigurací.
V závislosti na scénáři se zařízení přesune mezi ioT Huby, může být také nutné migrovat stav zařízení aktualizovaný v předchozím centru IoT do nového ioT Hubu. Tuto migraci podporují zásady opětovného zřízení ve službě Device Provisioning.
Zásady opětovného zřízení
V závislosti na scénáři může zařízení při restartování odeslat žádost instanci služby zřizování. Podporuje také metodu ruční aktivace zřizování na vyžádání. Zásada opětovného zřízení položky registrace určuje, jak instance služby zřizování zařízení zpracovává tyto požadavky na zřizování. Zásada také určuje, jestli se během opětovného zřizování mají migrovat data o stavu zařízení. Stejné zásady jsou k dispozici pro jednotlivé registrace a skupiny registrací:
Opětovné zřízení a migrace dat: Tato zásada je výchozí pro nové položky registrace. Tato zásada provede akci, když zařízení přidružená k položce registrace odešle novou žádost (1). V závislosti na konfiguraci položky registrace se zařízení může znovu přiřadit k jinému centru IoT. Pokud zařízení mění centra IoT, registrace zařízení s počátečním centrem IoT se odebere. Aktualizované informace o stavu zařízení z tohoto počátečního centra IoT budou migrovány do nového centra IoT (2). Během migrace se stav zařízení bude oznamovat jako Přiřazování.
Opětovné zřízení a resetování počáteční konfigurace: Tato zásada provede akci, když zařízení přidružená k položce registrace odešlou novou žádost o zřízení (1). V závislosti na konfiguraci položky registrace se zařízení může znovu přiřadit k jinému centru IoT. Pokud zařízení mění centra IoT, registrace zařízení s počátečním centrem IoT se odebere. Počáteční konfigurační data, která instance služby zřizování přijala při zřízení zařízení, se poskytují do nového centra IoT (2). Během migrace se stav zařízení bude oznamovat jako Přiřazování.
Tato zásada se často používá pro obnovení továrního nastavení beze změny ioT Hubů.
Nikdy znovu nezřazujete: Zařízení se nikdy znovu nepřiřazuje k jinému centru. Tato zásada se poskytuje pro správu zpětné kompatibility.
Poznámka:
Služba DPS vždy bude volat webhook vlastního přidělení bez ohledu na zásady opětovného zřízení v případě, že zařízení obsahuje nová data ReturnData . Pokud je zásada opětovného zřízení nastavená na nikdy znovu zřízení, webhook se zavolá, ale zařízení nezmění přiřazené centrum.
Při návrhu řešení a definování logiky opětovného zřízení je potřeba zvážit několik věcí. Příklad:
- Jak často očekáváte restartování zařízení
- Kvóty a omezení DPS
- Očekávaný čas nasazení pro váš flotilu (postupné zavedení vs. vše najednou)
- Funkce opakování implementovaná ve vašem klientském kódu, jak je popsáno v obecných doprovodných materiálech k opakování v Centru architektury Azure
Tip
Při každém restartování zařízení doporučujeme nezřizovat, protože to může způsobit některé problémy při opětovném zřízení několika tisíc nebo milionů zařízení najednou. Místo toho byste se měli pokusit použít rozhraní API pro vyhledávání stavu registrace zařízení a pokusit se tyto informace připojit ke službě IoT Hub. Pokud se to nezdaří, zkuste znovu vytvořit zřízení, protože se mohly změnit informace o službě IoT Hub. Mějte na paměti, že dotazování na stav registrace se počítá jako nová registrace zařízení, takže byste měli zvážit limit registrace zařízení. Zvažte také implementaci vhodné logiky opakování, jako je exponenciální zpět s randomizací, jak je popsáno v obecných doprovodných materiálech k opakování. V některých případech je v závislosti na možnostech zařízení možné uložit informace o službě IoT Hub přímo na zařízení a připojit se přímo ke službě IoT Hub po prvním zřízení pomocí DPS. Pokud se rozhodnete to provést, ujistěte se, že implementujete záložní mechanismus pro případ, že dojde k určitým chybám z centra, například zvažte následující scénáře:
- Zkuste operaci centra zopakovat, pokud je kód výsledku 429 (Příliš mnoho požadavků) nebo chyba v rozsahu 5xx. U jiných chyb operaci neopakujte.
- V případě chyb 429 opakujte akci pouze po uplynutí doby uvedené v hlavičce Opakovat až po.
- V případě chyb 5xx použijte exponenciální zpětné vypnutí s prvním opakováním aspoň 5 sekund po odpovědi.
- Při chybách jiných než 429 a 5xx se znovu zaregistrujte prostřednictvím DPS
- V ideálním případě byste také měli podporovat metodu ruční aktivace zřizování na vyžádání.
Při plánování aktivit, jako je nabízení aktualizací vašeho vozového parku, také doporučujeme vzít v úvahu limity služeb. Například aktualizace vozového parku najednou může způsobit, že se všechna zařízení znovu zaregistrují prostřednictvím DPS (což by mohlo být snadno nad limit kvóty registrace) – V takových scénářích zvažte plánování aktualizací zařízení ve fázích místo aktualizace celého vozového parku najednou.
Správa zpětné kompatibility
Před zářím 2018 měla přiřazení zařízení k ioT Hubům rychlé chování. Když se zařízení vrátilo přes proces zřizování, bylo by mu přiřazeno pouze stejné centrum IoT.
U řešení, která na tomto chování závisela, zahrnuje služba zřizování zpětnou kompatibilitu. Toto chování se v současnosti udržuje pro zařízení podle následujících kritérií:
Zařízení se připojují s verzí rozhraní API před dostupností nativní podpory opětovného zřízení ve službě Device Provisioning. Projděte si následující tabulku rozhraní API.
Položka registrace pro zařízení nemá nastavenou zásadu opětovného zřízení.
Tato kompatibilita zajišťuje, že dříve nasazená zařízení mají stejné chování jako při počátečním testování. Pokud chcete zachovat předchozí chování, neuložte do těchto registrací zásady opětovného zřízení. Pokud je nastavená zásada opětovného zřízení, má zásada opětovného zřízení přednost před chováním. Když povolíte, aby zásady opětovného zřízení měli přednost, můžou zákazníci aktualizovat chování zařízení, aniž by museli zařízení znovu vytvořit.
Následující vývojový diagram vám pomůže ukázat, kdy je toto chování přítomné:
Následující tabulka ukazuje verze rozhraní API před dostupností nativní podpory opětovného zřízení ve službě Device Provisioning:
REST API | C SDK | Python SDK | Node SDK | Java SDK | .NET SDK |
---|---|---|---|---|---|
2018-04-01 a starší | 1.2.8 a starší | 1.4.2 a starší | 1.7.3 nebo starší | 1.13.0 nebo starší | 1.1.0 nebo starší |
Poznámka:
Tyto hodnoty a odkazy se pravděpodobně změní. Jedná se pouze o zástupný symbol, který se pokusí určit, kde se verze dají určit zákazníkem a jaké budou očekávané verze.