Sdílet prostřednictvím


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 nebo Version, 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' nebo properties.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říklad 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 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 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ň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.