Pochopení IoT Edge automatického nasazení pro jednotlivá zařízení nebo ve velkém měřítku

Platí pro:  ikona Ano IoT Edge 1,1  ikona ano IoT Edge 1,2

Automatická nasazení a vrstvená nasazení vám pomůžou spravovat a konfigurovat moduly na velkém počtu IoT Edgech zařízení.

Azure IoT Edge poskytuje dva způsoby, jak nakonfigurovat moduly, které se mají spouštět na IoT Edge zařízeních. První metodou je nasazení modulů na základě jednotlivých zařízení. Vytvoříte manifest nasazení a pak ho použijete pro konkrétní zařízení podle názvu. Druhou metodou je nasadit moduly automaticky do libovolného registrovaného zařízení, které splňuje sadu definovaných podmínek. Vytvoříte manifest nasazení a pak definujete, která zařízení se vztahují na závislosti na značkách v zařízení.

Tento článek se zaměřuje na konfiguraci a monitorování loďstva zařízení, které se souhrnně označují jako IoT Edge Automatická nasazení. Základní postup nasazení je následující:

  1. Operátor definuje nasazení, které popisuje sadu modulů a cílová zařízení. Každé nasazení má manifest nasazení, který tyto informace odráží.
  2. Služba IoT Hub komunikuje se všemi cílovými zařízeními a nakonfiguruje je pomocí deklarované moduly.
  3. Služba IoT Hub načítá stav ze zařízení IoT Edge a zpřístupňuje je operátorovi. Například operátor může zobrazit, když se hraniční zařízení nenakonfigurovalo úspěšně nebo když v modulu runtime dojde k chybě.
  4. V každém okamžiku jsou pro nasazení nakonfigurovaná nová IoT Edge zařízení, která splňují podmínky cílení.

Tento článek popisuje jednotlivé komponenty, které jsou součástí konfigurace a monitorování nasazení. Návod k vytvoření a aktualizaci nasazení najdete v tématu věnovaném nasazení a sledování IoT Edgech modulů ve velkém měřítku.

Nasazení

IoT Edge automatické nasazení přiřadí image IoT Edge modulu, aby se spouštěly jako instance na cílové sadě IoT Edge zařízení. Funguje tak, že nakonfiguruje manifest nasazení IoT Edge tak, aby zahrnoval seznam modulů s odpovídajícími inicializačními parametry. Nasazení se dá přiřadit k jednomu zařízení (na základě ID zařízení) nebo ke skupině zařízení (na základě značek). Jakmile zařízení IoT Edge obdrží manifest nasazení, stáhne a nainstaluje image kontejneru z příslušných úložišť kontejnerů a nakonfiguruje je odpovídajícím způsobem. Po vytvoření nasazení může operátor sledovat stav nasazení a zjistit, jestli jsou cílová zařízení správně nakonfigurovaná.

S nasazením lze nakonfigurovat pouze IoT Edge zařízení. Než může přijmout nasazení, musí být na zařízení následující požadavky:

  • Základní operační systém
  • Systém správy kontejnerů, jako je Moby nebo Docker
  • Zřizování modulu runtime IoT Edge

Manifest nasazení

Manifest nasazení je dokument JSON, který popisuje moduly, které mají být nakonfigurovány na cílových IoT Edge zařízeních. Obsahuje konfigurační metadata pro všechny moduly, včetně požadovaných systémových modulů (konkrétně agent IoT Edge a centrum IoT Edge).

Konfigurační metadata pro každý modul zahrnují:

  • Verze
  • Typ
  • Stav (například spuštěno nebo zastaveno)
  • Zásady restartování
  • Image a Registry kontejneru
  • Trasy pro vstup a výstup dat

Pokud je image modulu uložená v soukromém registru kontejnerů, agent IoT Edge uchovává přihlašovací údaje registru.

Cílová podmínka

Cílová podmínka se průběžně vyhodnocuje po celou dobu životnosti nasazení. Všechna nová zařízení, která splňují požadavky, jsou zahrnutá a všechna stávající zařízení, která už nejsou, se odeberou. Nasazení se znovu aktivuje, pokud služba zjistí změnu cílové podmínky.

Máte například nasazení pomocí značek cílové podmínky. Environment = ' prod '. Když zahájíte nasazení, je k dispozici 10 produkčních zařízení. Moduly jsou úspěšně nainstalovány v těchto 10 zařízeních. Stav agenta IoT Edge zobrazuje 10 celkem zařízení, 10 úspěšných odpovědí, 0 odpovědí na chyby a 0 nedokončených odpovědí. Nyní přidáte pět dalších zařízení se značkami. prostředí = ' prod '. Služba zjistí změnu a stav agenta IoT Edge se změní na 15 celkových zařízení, 10 úspěšných odpovědí, 0 odpovědí na chyby a 5 nevyřízených odpovědí, zatímco se nasadí na pět nových zařízení.

Použijte jakoukoli logickou podmínku pro nepoužité značky zařízení, vykázaných vlastností zařízení, které jsou v seznamu, a vyberte cílové zařízení. Pokud chcete použít podmínku s značkami, je nutné přidat "značky": {} oddíl do zařízení je možné nastavit na stejné úrovni jako vlastnosti. Další informace o značkách v zařízení s dvojitou dvojicí

Příklady cílových podmínek:

  • deviceId = ' linuxprod1 '
  • Tags. Environment = ' prod '
  • Tags. Environment = ' prod ' a Tags. Location = ' westus '
  • Tags. Environment = ' prod ' nebo Tags. Location = ' westus '
  • Tags. operator = Jan a Tags. Environment = ' prod ' a NOT deviceId = ' linuxprod1 '
  • Properties. inhlášeny. devicemodel = ' 4000x '

Při vytváření cílové podmínky Vezměte v úvahu tato omezení:

  • V zařízení je možné vytvořit jenom cílovou podmínku pomocí značek, hlášených vlastností nebo deviceId.
  • Dvojité uvozovky nejsou v žádné části podmínky cíle povoleny. Použijte jednoduché uvozovky.
  • Jednoduché uvozovky reprezentují hodnoty cílové podmínky. Proto je nutné jednu uvozovku začínat jinou jednou uvozovkou, pokud je součástí názvu zařízení. Například pro cílení na zařízení nazvané operator'sDevice Write deviceId='operator''sDevice' .
  • V hodnotách cílové podmínky jsou povoleny číslice, písmena a následující znaky: “()<>@,;:\\"/?={} \t\n\r .
  • V klíčích cílové podmínky nejsou povoleny následující znaky: /; .

Priorita

Priorita definuje, jestli se má nasazení použít u cílového zařízení vzhledem k jiným nasazením. Priorita nasazení je kladné celé číslo s větší prioritou, která označuje vyšší prioritu. Pokud je zařízení IoT Edge cíleno více než jedním nasazením, platí nasazení s nejvyšší prioritou. Nasazení s nižšími prioritami se neaplikují, ani se nesloučí. Pokud je zařízení cíleno na dvě nebo více nasazení se stejnou prioritou, platí poslední vytvořené nasazení (určené časovým razítkem vytvoření).

Popisky

Popisky jsou páry klíč/hodnota řetězce, které lze použít k filtrování a seskupení nasazení. Nasazení může mít více popisků. Popisky jsou volitelné a neovlivňují skutečnou konfiguraci IoT Edgech zařízení.

Metriky

Ve výchozím nastavení všechna nasazení hlásí čtyři metriky:

  • Cíl zobrazuje IoT Edge zařízení, která se shodují s podmínkou cílení nasazení.
  • Použito ukazuje cílené IoT Edge zařízení, na která necílí jiné nasazení s vyšší prioritou.
  • Po úspěšném hlášení se zobrazí IoT Edge zařízení, která ohlásila, že byly moduly nasazeny úspěšně.
  • Hlášení chyb zobrazuje IoT Edge zařízení, která oznámily, že jeden nebo více modulů nebyl úspěšně nasazeny. Pokud chcete tuto chybu prozkoumat, připojte se vzdáleně k těmto zařízením a Prohlédněte si soubory protokolů.

Kromě toho můžete definovat vlastní metriky, které vám pomůžou monitorovat a spravovat nasazení.

Metriky poskytují souhrnné počty různých stavů, které mohou zařízení nahlásit zpět v důsledku použití konfigurace nasazení. Metriky se mohou dotazovat na nedokončené hlášené vlastnosti modulu edgeHub, jako je lastDesiredStatus nebo lastConnectTime. Příklad:

SELECT deviceId FROM devices
  WHERE properties.reported.lastDesiredStatus.code = 200

Přidání vlastních metrik je volitelné a nemá vliv na skutečnou konfiguraci IoT Edgech zařízení.

Vrstvené nasazení

Navrstvená nasazení jsou automatická nasazení, která se dají vzájemně kombinovat, aby se snížil počet jedinečných nasazení, která se musí vytvořit. Vrstvená nasazení jsou užitečná ve scénářích, kdy se stejné moduly opakovaně používají v různých kombinacích v mnoha automatických nasazeních.

Navrstvená nasazení mají stejné základní komponenty jako jakékoli automatické nasazení. Cílí na zařízení na základě značek v zařízení a poskytují stejné funkce kolem popisků, metrik a hlášení stavu. Navrstvená nasazení mají taky přiřazené priority, ale místo toho, abyste zjistili, jaké nasazení se na zařízení používá, Priorita určuje, jak se v zařízení přiděluje více nasazení. Pokud například dvě vrstvená nasazení mají modul nebo trasu se stejným názvem, použije se vrstvené nasazení s vyšší prioritou, zatímco je nižší priorita přepsána.

Moduly runtime systému, edgeAgent a edgeHub, nejsou nakonfigurované jako součást navrstveného nasazení. Každé IoT Edge, na které cílí vrstvené nasazení, musí nejprve použít standardní automatické nasazení. Automatické nasazení poskytuje základ, podle kterého je možné přidat vrstvené nasazení.

Zařízení IoT Edge použít jedno a jenom jedno standardní automatické nasazení, ale může použít více vrstvené automatické nasazení. Nasazení ve vrstvách, která cílí na zařízení, musí mít vyšší prioritu než automatické nasazení tohoto zařízení.

Představte si například následující scénář společnosti, která spravuje budovy. Vyvinuli IoT Edge moduly pro shromažďování dat z bezpečnostních kamer, senzorů pohybu a výtahů. Ne všechny budovy ale mohou využívat všechny tři moduly. U standardních automatických nasazení musí firma vytvořit jednotlivá nasazení pro všechny kombinace modulů, které jejich budovy potřebují.

Standardní automatická nasazení musí pojmout každou kombinaci modulů.

Jakmile ale společnost přepne na vícevrstvá automatická nasazení, zjistí, že může vytvořit stejné kombinace modulů pro své budovy s menším počtem nasazení pro správu. Každý modul má vlastní vrstvené nasazení a značky zařízení identifikují, které moduly se do každé budovy přidávají.

Vícevrstvá automatická nasazení zjednodušují scénáře, kdy se stejné moduly kombinují různými způsoby.

Konfigurace dvojčat modulu

Pokud pracujete s nasazeními ve vrstvách, můžete úmyslně nebo jinak mít dvě nasazení se stejným modulem, který cílí na zařízení. V těchto případech se můžete rozhodnout, jestli má nasazení s vyšší prioritou přepsat dvojče modulu, nebo jestli se k ní má připojit. Můžete mít například nasazení, které používá stejný modul pro 100 různých zařízení. 10 z těchto zařízení je ale v zabezpečených zařízeních a potřebuje další konfiguraci, aby bylo možné komunikovat prostřednictvím proxy serverů. Vrstvené nasazení můžete použít k přidání vlastností dvojčete modulu, které 10 zařízením umožní zabezpečeně komunikovat bez přepsání existujících informací o dvojčatech modulu ze základního nasazení.

Požadované vlastnosti dvojčete modulu můžete připojit v manifestu nasazení. Když ve standardním nasazení přidáte vlastnosti do oddílu properties.desired dvojčete modulu, můžete ve vrstveném nasazení deklarovat novou podmnožinu požadovaných vlastností.

Ve standardním nasazení můžete například přidat modul simulovaného senzoru teploty s následujícími požadovanými vlastnostmi, které mu sděluje, že má odesílat data v 5sekunových intervalech:

"SimulatedTemperatureSensor": {
  "properties.desired": {
    "SendData": true,
    "SendInterval": 5
  }
}

Ve vrstveném nasazení, které cílí na některá nebo všechna stejná zařízení, můžete přidat vlastnost, která simulovanému senzoru říká, že má odeslat 1000 zpráv a pak zastavit. Nechcete přepsat existující vlastnosti, takže v požadovaných vlastnostech vytvoříte nový oddíl s názvem , který layeredProperties obsahuje novou vlastnost:

"SimulatedTemperatureSensor": {
  "properties.desired.layeredProperties": {
    "StopAfterCount": 1000
  }
}

U zařízení, u které je použité obě nasazení, budou ve dvojčete modulu pro simulovaný senzor teploty odrážet následující vlastnosti:

"properties": {
  "desired": {
    "SendData": true,
    "SendInterval": 5,
    "layeredProperties": {
      "StopAfterCount": 1000
    }
  }
}

Pokud nastavíte pole dvojčete modulu ve vrstveném nasazení, přepíše se požadované vlastnosti pro tento modul v jakémkoli nasazení s properties.desired nižší prioritou.

Postupné nasouování

Postupné zavedení je celkový proces, při kterém operátor nasazovat změny do širší IoT Edge zařízení. Cílem je provádět změny postupně, aby se snížilo riziko rozsáhlých změn, které by rušil. Automatická nasazení pomáhají spravovat postupné zavádění v rámci vozového parku IoT Edge zařízení.

Postupné spuštění se provádí v následujících fázích a krocích:

  1. Vytvořte testovací prostředí pro IoT Edge tak, že je zřídíte a nastavíte značku dvojčete zařízení, jako je tag.environment='test' . Testovací prostředí by mělo zrcadlit produkční prostředí, na které bude nasazení nakonec cílit.
  2. Vytvořte nasazení, včetně požadovaných modulů a konfigurací. Podmínka cílení by měla cílit na testovací IoT Edge prostředí zařízení.
  3. Ověřte konfiguraci nového modulu v testovacím prostředí.
  4. Aktualizujte nasazení tak, aby zahrnovalo podmnožinu produkčních IoT Edge zařízení přidáním nové značky do podmínky cílení. Také se ujistěte, že je priorita nasazení vyšší než u jiných nasazení aktuálně cílených na tato zařízení.
  5. Zobrazením stavu nasazení ověřte, že nasazení na cílových zařízeních IoT proběhlo úspěšně.
  6. Aktualizujte nasazení tak, aby cílil na všechna zbývající produkční IoT Edge zařízení.

Vrácení zpět

Nasazení je možné vrátit zpět, pokud dojde k chybám nebo chybná konfigurace. Vzhledem k tomu, že nasazení definuje absolutní konfiguraci modulu pro zařízení IoT Edge, musí být další nasazení také cílem stejného zařízení s nižší prioritou, i když je cílem odebrat všechny moduly.

Odstraněním nasazení se neodebere moduly z cílových zařízení. Musí být k dispozici další nasazení, které definuje novou konfiguraci zařízení, i když se jedná o prázdné nasazení.

Vrácení zpět proveďte v následujícím pořadí:

  1. Ověřte, že druhé nasazení je také cílem stejné sady zařízení. Pokud je cílem vrácení zpět odebrání všech modulů, druhé nasazení by nemělo obsahovat žádné moduly.
  2. Upravte nebo odeberte výraz cílové podmínky nasazení, které chcete vrátit zpět, aby zařízení už splňovala podmínku cílení.
  3. Zkontrolujte stav nasazení a ověřte, že vrácení zpět bylo úspěšné.
    • U zařízení, která byla vrácena zpět, by se už nemělo zobrazovat stav nasazení, které bylo vráceno zpět.
    • Druhé nasazení by teď mělo zahrnovat stav nasazení pro zařízení, která byla vrácena zpět.

Další kroky

  • Projděte si postup vytvoření, aktualizace nebo odstranění nasazení v tématu Nasazení a monitorování IoT Edge ve velkém měřítku.
  • Další informace o dalších konceptech IoT Edge, jako jsou IoT Edge Runtime a IoT Edge modulech.