Automatická správa zařízení a modulů IoT pomocí rozhraní Azure CLI
Automatická správa zařízení ve službě Azure IoT Hub automatizuje řadu opakovaných a složitých úloh správy velkých vozového parku zařízení. Díky automatické správě zařízení můžete cílit na sadu zařízení na základě jejich vlastností, definovat požadovanou konfiguraci a pak nechat IoT Hub aktualizovat zařízení, když přicházejí do oboru. Tato aktualizace se provádí pomocí automatické konfigurace zařízení nebo automatické konfigurace modulu, která umožňuje shrnout dokončení a dodržování předpisů, zpracovat sloučení a konflikty a zavést konfigurace ve fázovaném přístupu.
Poznámka:
Funkce popsané v tomto článku jsou k dispozici pouze na úrovni Standard služby IoT Hub. Další informace o úrovních Služby IoT Hub úrovně Basic a Standard/Free najdete v tématu Volba správné úrovně IoT Hubu pro vaše řešení.
Automatická správa zařízení funguje aktualizací sady dvojčat zařízení nebo dvojčat modulů s požadovanými vlastnostmi a generováním sestav souhrnu založeného na ohlášených vlastnostech dvojčete. Zavádí novou třídu a dokument JSON s názvem konfigurace , která má tři části:
Cílová podmínka definuje rozsah dvojčat zařízení nebo dvojčat modulů, které se mají aktualizovat. Cílová podmínka se zadává jako dotaz na značky dvojčete zařízení nebo ohlášené vlastnosti.
Cílový obsah definuje požadované vlastnosti, které se mají přidat nebo aktualizovat v cílových dvojčatech zařízení nebo dvojčatech modulů. Obsah obsahuje cestu k oddílu požadovaných vlastností, které se mají změnit.
Metriky definují souhrnné počty různých stavů konfigurace, jako je Úspěch, Probíhá a Chyba. Vlastní metriky se zadají jako dotazy na ohlášené vlastnosti dvojčete. Systémové metriky jsou výchozí metriky, které měří stav aktualizace dvojčete, například počet cílových dvojčat a počet dvojčat, která byla úspěšně aktualizována.
Automatické konfigurace se spustí poprvé krátce po vytvoření konfigurace a pak v pětiminutových intervalech. Dotazy metrik se spouštějí při každém spuštění automatické konfigurace. Služba IoT Hubs úrovně Standard podporuje maximálně 100 automatických konfigurací; deset na ioT hubech úrovně Free. Platí také omezení omezení. Další informace najdete v tématu Kvóty a omezování.
Požadavky rozhraní příkazového řádku
Centrum IoT ve vašem předplatném Azure Pokud centrum ještě nemáte, můžete postupovat podle kroků v tématu Vytvoření centra IoT.
Azure CLI ve vašem prostředí. Minimálně vaše verze Azure CLI musí být 2.0.70 nebo vyšší. Ke kontrole použijte příkaz
az –-version
. Tato verze podporuje příkazy rozšíření az a zavádí příkazové rozhraní Knack.Rozšíření IoT pro Azure CLI
Poznámka:
Tento článek používá nejnovější verzi rozšíření Azure IoT, která se nazývá azure-iot
. Starší verze se nazývá azure-cli-iot-ext
. Najednou byste měli mít nainstalovanou jenom jednu verzi. Pomocí příkazu az extension list
můžete ověřit aktuálně nainstalovaná rozšíření.
Slouží az extension remove --name azure-cli-iot-ext
k odebrání starší verze rozšíření.
Slouží az extension add --name azure-iot
k přidání nové verze rozšíření.
Pokud chcete zjistit, jaká rozšíření jste nainstalovali, použijte az extension list
.
Implementace dvojčat
Automatické konfigurace zařízení vyžadují použití dvojčat zařízení k synchronizaci stavu mezi cloudem a zařízeními. Další informace najdete v tématu Principy a použití dvojčat zařízení ve službě IoT Hub.
Automatické konfigurace modulů vyžadují použití dvojčat modulů k synchronizaci stavu mezi cloudem a moduly. Další informace najdete v tématu Principy a používání dvojčat modulů ve službě IoT Hub.
Použití značek k cílení dvojčat
Před vytvořením konfigurace musíte určit, která zařízení nebo moduly chcete ovlivnit. Azure IoT Hub identifikuje zařízení a používá značky ve dvojčeti zařízení a identifikuje moduly pomocí značek ve dvojčeti modulu. Každé zařízení nebo modul může mít více značek a můžete je definovat libovolným způsobem, který dává smysl pro vaše řešení. Pokud například spravujete zařízení v různých umístěních, přidejte do dvojčete zařízení následující značky:
"tags": {
"location": {
"state": "Washington",
"city": "Tacoma"
}
},
Definování cílového obsahu a metrik
Cílový obsah a dotazy na metriky se zadají jako dokumenty JSON, které popisují požadované vlastnosti dvojčete zařízení nebo dvojčete modulu pro nastavení a ohlášené vlastnosti pro měření. Pokud chcete vytvořit automatickou konfiguraci pomocí Azure CLI, uložte cílový obsah a metriky místně jako soubory .txt. Cesty k souborům v pozdější části použijete při spuštění příkazu pro použití konfigurace na zařízení.
Tady je ukázka základního cílového obsahu pro automatickou konfiguraci zařízení:
{
"content": {
"deviceContent": {
"properties.desired.chillerWaterSettings": {
"temperature": 38,
"pressure": 78
}
}
}
Automatické konfigurace modulů se chovají velmi podobně, ale cílíte moduleContent
místo deviceContent
.
{
"content": {
"moduleContent": {
"properties.desired.chillerWaterSettings": {
"temperature": 38,
"pressure": 78
}
}
}
Tady jsou příklady dotazů na metriky:
{
"queries": {
"Compliant": "select deviceId from devices where configurations.[[chillerdevicesettingswashington]].status = 'Applied' AND properties.reported.chillerWaterSettings.status='current'",
"Error": "select deviceId from devices where configurations.[[chillerdevicesettingswashington]].status = 'Applied' AND properties.reported.chillerWaterSettings.status='error'",
"Pending": "select deviceId from devices where configurations.[[chillerdevicesettingswashington]].status = 'Applied' AND properties.reported.chillerWaterSettings.status='pending'"
}
}
Dotazy na metriky pro moduly jsou také podobné dotazům na zařízení, ale vyberete je moduleId
z devices.modules
. Příklad:
{
"queries": {
"Compliant": "select deviceId, moduleId from devices.module where configurations.[[chillermodulesettingswashington]].status = 'Applied' AND properties.reported.chillerWaterSettings.status='current'"
}
}
Vytvoření konfigurace
Ve službě IoT Hub úrovně Standard můžete vytvořit maximálně 100 automatických konfigurací. deset na ioT hubech úrovně Free. Další informace najdete v tématu Kvóty a omezování.
Cílová zařízení nakonfigurujete tak, že vytvoříte konfiguraci, která se skládá z cílového obsahu a metrik. K vytvoření konfigurace použijte následující příkaz:
az iot hub configuration create --config-id [configuration id] \
--labels [labels] --content [file path] --hub-name [hub name] \
--target-condition [target query] --priority [int] \
--metrics [metric queries]
--config-id – název konfigurace, která se vytvoří v Centru IoT. Dejte konfiguraci jedinečný název, který má délku až 128 znaků. Jsou povolena malá písmena a následující speciální znaky:
-+%_*!'
. Mezery nejsou povolené.--popisky – přidejte popisky, které vám pomůžou sledovat vaši konfiguraci. Popisky jsou Name, Value pairs, které popisují vaše nasazení. Příklad:
HostPlatform, Linux
neboVersion, 3.0.1
--content – vložená cesta JSON nebo souboru k cílovému obsahu, který se má nastavit jako požadované vlastnosti dvojčete.
--hub-name – název centra IoT, ve kterém se konfigurace vytvoří. Centrum musí být v aktuálním předplatném. Přepnutí na požadované předplatné pomocí příkazu
az account set -s [subscription name]
--target-condition – Zadejte cílovou podmínku, která určí, na která zařízení nebo moduly se touto konfigurací zaměří. V případě automatické konfigurace zařízení je podmínka založená na značkách dvojčat zařízení nebo požadovaných vlastnostech dvojčete zařízení a měla by odpovídat formátu výrazu. Například
tags.environment='test'
neboproperties.desired.devicemodel='4000x'
. V případě automatické konfigurace modulu je podmínka založená na značkách dvojčete modulu nebo požadovaných vlastnostech dvojčete modulu. Napříkladfrom devices.modules where tags.environment='test'
nebofrom devices.modules where properties.reported.chillerProperties.model='4000x'
.--priority – kladné celé číslo. V případě, že dvě nebo více konfigurací cílí na stejné zařízení nebo modul, použije se konfigurace s nejvyšší číselnou hodnotou priority.
--metrics – Cesta k metrikám dotazů metrik. Metriky poskytují souhrnné počty různých stavů, které může zařízení nebo modul po použití konfiguračního obsahu ohlásit. Můžete například vytvořit metriku pro čekající změny nastavení, metriku pro chyby a metriku pro úspěšné změny nastavení.
Monitorování konfigurace
K zobrazení obsahu konfigurace použijte následující příkaz:
az iot hub configuration show --config-id [configuration id] \
--hub-name [hub name]
--config-id – název konfigurace, která existuje v centru IoT.
--hub-name – název centra IoT, ve kterém konfigurace existuje. Centrum musí být v aktuálním předplatném. Přepnutí na požadované předplatné pomocí příkazu
az account set -s [subscription name]
Zkontrolujte konfiguraci v příkazovém okně. Vlastnost metrik uvádí počet pro každou metriku, která se vyhodnocuje jednotlivými rozbočovači:
targetedCount – systémová metrika, která určuje počet dvojčat zařízení nebo dvojčat modulů ve službě IoT Hub, které odpovídají podmínce cílení.
appliedCount – Systémová metrika určuje počet zařízení nebo modulů s použitým cílovým obsahem.
Vaše vlastní metrika – Všechny metriky, které jste definovali, jsou uživatelské metriky.
Seznam ID zařízení, ID modulů nebo objektů pro každou metriku můžete zobrazit pomocí následujícího příkazu:
az iot hub configuration show-metric --config-id [configuration id] \
--metric-id [metric id] --hub-name [hub name] --metric-type [type]
--config-id – název nasazení, které existuje v centru IoT.
--ID metriky – název metriky, pro kterou chcete zobrazit seznam ID zařízení nebo ID modulů, například
appliedCount
.--hub-name – název centra IoT, ve kterém existuje nasazení. Centrum musí být v aktuálním předplatném. Pomocí příkazu
az account set -s [subscription name]
přepněte na požadované předplatné .--Typ metriky – Typ metriky může být
system
nebouser
. Systémové metriky jsoutargetedCount
aappliedCount
. Všechny ostatní metriky jsou metriky uživatelů.
Úprava konfigurace
Když upravíte konfiguraci, změny se okamžitě replikují do všech cílových zařízení.
Pokud aktualizujete cílovou podmínku, dojde k následujícím aktualizacím:
Pokud dvojče nesplňuje starou cílovou podmínku, ale splňuje novou cílovou podmínku a tato konfigurace je nejvyšší prioritou pro toto dvojče, použije se tato konfigurace.
Pokud dvojče, které tuto konfiguraci aktuálně spouští, nesplňuje cílovou podmínku, nastavení z konfigurace se odebere a dvojče se upraví podle další konfigurace s nejvyšší prioritou.
Pokud dvojče, které tuto konfiguraci právě spouští, nesplňuje cílovou podmínku a nesplňuje cílovou podmínku žádné jiné konfigurace, nastavení z konfigurace se odebere a ve dvojčeti se neprovedou žádné další změny.
K aktualizaci konfigurace použijte následující příkaz:
az iot hub configuration update --config-id [configuration id] \
--hub-name [hub name] --set [property1.property2='value']
--config-id – název konfigurace, která existuje v centru IoT.
--hub-name – název centra IoT, ve kterém konfigurace existuje. Centrum musí být v aktuálním předplatném. Pomocí příkazu
az account set -s [subscription name]
přepněte na požadované předplatné .--set – aktualizujte vlastnost v konfiguraci. Můžete aktualizovat následující vlastnosti:
targetCondition – například
targetCondition=tags.location.state='Oregon'
popisky
priorita
Odstranění konfigurace
Když konfiguraci odstraníte, všechna dvojčata zařízení nebo dvojčata modulů převezmou další konfiguraci s nejvyšší prioritou. Pokud dvojčata nesplňují cílovou podmínku žádné jiné konfigurace, nepoužijí se žádná další nastavení.
K odstranění konfigurace použijte následující příkaz:
az iot hub configuration delete --config-id [configuration id] \
--hub-name [hub name]
--config-id – název konfigurace, která existuje v centru IoT.
--hub-name – název centra IoT, ve kterém konfigurace existuje. Centrum musí být v aktuálním předplatném. Pomocí příkazu
az account set -s [subscription name]
přepněte na požadované předplatné .
Další kroky
V tomto článku jste zjistili, jak nakonfigurovat a monitorovat zařízení IoT ve velkém měřítku.
Informace o hromadné správě identit zařízení ioT Hubu najdete v tématu Hromadný import a export identit zařízení ioT Hubu.