Automatická správa zařízení a modulů IoT pomocí rozhraní Azure CLI

Automatická správa zařízení v Azure IoT Hub automatizuje řadu opakujících se a složitých úloh správy velkých vozového parku zařízení. Pomocí automatické správy zařízení můžete cílit na sadu zařízení na základě jejich vlastností, definovat požadovanou konfiguraci a pak nechat IoT Hub zařízení aktualizovat, když přijdou do rozsahu. Tato aktualizace se provádí pomocí automatické konfigurace zařízení nebo automatické konfigurace modulu, která umožňuje sumarizovat dokončení a dodržování předpisů, zpracovávat slučování a konflikty a postupně zavádět konfigurace.

Poznámka

Funkce popsané v tomto článku jsou dostupné jenom na standardní úrovni IoT Hub. Další informace o IoT Hub úrovně Basic a Standard/Free najdete v tématu Volba správné IoT Hub úrovně pro vaše řešení.

Automatická správa zařízení funguje tak, že aktualizuje sadu dvojčat zařízení nebo dvojčat modulů s požadovanými vlastnostmi a nahlásí souhrn, který je založený na ohlášených vlastnostech dvojčete. Představuje 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čat 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á se úspěšně aktualizovala.

Automatické konfigurace se poprvé spustí krátce po vytvoření konfigurace a pak v pětiminutových intervalech. Dotazy na metriky se spouštějí při každém spuštění automatické konfigurace. Ve službě IoT Hub úrovně Standard se podporuje maximálně 100 automatických konfigurací. deset na ioT hubech úrovně Free. Platí také omezení omezování. 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.

  • Azure CLI ve vašem prostředí. Vaše verze Azure CLI musí být minimálně 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 s názvem azure-iot. Starší verze se nazývá azure-cli-iot-ext. Současně byste měli mít nainstalovanou jenom jednu verzi. K ověření aktuálně nainstalovaných rozšíření můžete použít příkaz az extension list .

Použijte az extension remove --name azure-cli-iot-ext k odebrání starší verze rozšíření.

Použijte az extension add --name azure-iot k přidání nové verze rozšíření.

Pokud chcete zjistit, jaká rozšíření máte nainstalovaná, 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 Vysvětlení a použití dvojčat modulů v IoT Hub.

Použití značek k cílení na dvojčata

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 několik 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

Dotazy na cílový obsah a 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 k měření. Pokud chcete vytvořit automatickou konfiguraci pomocí Azure CLI, uložte cílový obsah a metriky místně jako .txt soubory. Cesty k souborům v pozdější části použijete při spuštění příkazu k 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
      }
    }
}

Konfigurace automatických modulů se chovají velmi podobně, ale cílíte moduleContent místo na 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 se také podobají dotazům na zařízení, ale vyberete si z moduleIddevices.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í se konfigurují vytvořením konfigurace, která se skládá z cílového obsahu a metrik. Pomocí následujícího příkazu vytvořte konfiguraci:

   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é.

  • --labels – přidejte popisky, které vám pomůžou sledovat konfiguraci. Popisky jsou páry Název a Hodnota, které popisují vaše nasazení. Příkladem je HostPlatform, Linux nebo Version, 3.0.1.

  • --content – vložený JSON nebo cesta k souboru cílového obsahu, který se nastaví 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. Pomocí příkazu přepněte na požadované předplatné. az account set -s [subscription name]

  • --target-condition – Zadejte cílovou podmínku, abyste zjistili, na která zařízení nebo moduly bude tato konfigurace cílit. Pro automatickou konfiguraci 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. Příkladem je tags.environment='test' nebo properties.desired.devicemodel='4000x'. Pro automatickou konfiguraci modulu je podmínka založená na značkách dvojčat modulů nebo požadovaných vlastnostech dvojčete modulu. Příkladem je from devices.modules where tags.environment='test' nebo from 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 Priorita.

  • --metrics – cesta k souboru k dotazům na metriky. Metriky poskytují souhrnné počty různých stavů, které může zařízení nebo modul hlásit po použití obsahu konfigurace. 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. Pomocí příkazu přepněte na požadované předplatné. az account set -s [subscription name]

Zkontrolujte konfiguraci v příkazovém okně. Vlastnost metrics uvádí počet pro každou metriku, kterou vyhodnocuje každé centrum:

  • targetedCount – systémová metrika, která určuje počet dvojčat zařízení nebo dvojčat modulů v IoT Hub, které odpovídají podmínce cílení.

  • appliedCount – systémová metrika určuje počet zařízení nebo modulů, na kterých se použil cílový obsah.

  • Vaše vlastní metrika – Všechny metriky, které jste definovali, jsou metriky uživatelů.

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.

  • --metric-id – název metriky, pro kterou chcete zobrazit seznam ID zařízení nebo MODULŮ, například appliedCount.

  • --hub-name – název centra IoT, ve kterém nasazení existuje. Centrum musí být v aktuálním předplatném. Přepněte na požadované předplatné pomocí příkazu az account set -s [subscription name].

  • --Typ metriky – Typ metriky může být system nebo user. Systémové metriky jsou targetedCount a appliedCount. 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ňovalo původní cílovou podmínku, ale splňuje novou cílovou podmínku a tato konfigurace má pro toto dvojče nejvyšší prioritu, použije se tato konfigurace.

  • Pokud dvojče, na kterém je tato konfigurace aktuálně spuštěná, už nesplňuje cílovou podmínku, odebere se nastavení z konfigurace a dvojče se upraví podle další konfigurace s nejvyšší prioritou.

  • Pokud dvojče, na kterém právě běží tato konfigurace, už nesplňuje cílovou podmínku a nesplňuje cílovou podmínku žádné jiné konfigurace, odebere se nastavení z konfigurace a na dvojčeti se neprovedou žádné další změny.

Pomocí následujícího příkazu aktualizujte konfiguraci:

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. Přepněte na požadované předplatné pomocí příkazu az account set -s [subscription name].

  • --set – Aktualizujte vlastnost v konfiguraci. Můžete aktualizovat následující vlastnosti:

    • targetCondition – například targetCondition=tags.location.state='Oregon'

    • Popisky

    • Prioritou

Odstranění konfigurace

Když odstraníte konfiguraci, 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, nebudou použita žádná další nastavení.

Pomocí následujícího příkazu odstraňte konfiguraci:

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. Přepněte na požadované předplatné pomocí příkazu az account set -s [subscription name].

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 Hub najdete v tématu Hromadný import a export identit zařízení IoT Hub.