Vysvětlení automatických nasazení IoT Edge pro jednotlivá zařízení nebo ve velkém měřítku

Platí pro:IoT Edge 1.4 checkmark IoT Edge 1.4

Důležité

IoT Edge 1.4 je podporovaná verze. Pokud používáte starší verzi, podívejte se na článek Aktualizace IoT Edge.

Automatické nasazení a vrstvené nasazení pomáhají spravovat a konfigurovat moduly na velkém počtu zařízení IoT Edge.

Azure IoT Edge nabízí dva způsoby konfigurace modulů pro spouštění na zařízeních IoT Edge. První metodou je nasazení modulů na základě jednotlivých zařízení. Vytvoříte manifest nasazení a pak ho použijete na konkrétní zařízení podle názvu. Druhou metodou je automatické nasazení modulů do libovolného registrovaného zařízení, které splňuje sadu definovaných podmínek. Vytvoříte manifest nasazení a pak definujete, na která zařízení se vztahují, na základě značek ve dvojčeti zařízení.

Nemůžete kombinovat jednotlivá zařízení a automatické nasazení. Jakmile začnete cílit na zařízení IoT Edge s automatickými nasazeními (s nasazeními s vrstvenými nasazeními nebo bez), nasazení jednotlivých zařízení se už nepodporují.

Tento článek se zaměřuje na konfiguraci a monitorování flotil zařízení, souhrnně označovaných jako automatické nasazení IoT Edge.

Základní kroky nasazení jsou následující:

  1. Operátor definuje manifest nasazení, který popisuje sadu modulů a cílových zařízení.
  2. V důsledku toho služba IoT Hub komunikuje se všemi cílovými zařízeními, aby je nakonfigurovala s deklarovanými moduly.
  3. Služba IoT Hub načte stav ze zařízení IoT Edge a zpřístupní je operátorovi. Operátor může například zjistit, kdy zařízení Edge není úspěšně nakonfigurované nebo pokud modul selže během běhu.
  4. Když jsou nově cílová zařízení IoT Edge online a připojí se ke službě IoT Hub, nakonfigurují se pro nasazení.

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 Nasazení a monitorování modulů IoT Edge ve velkém měřítku.

Nasazení

Automatické nasazení IoT Edge přiřadí image modulů IoT Edge, které se budou spouštět jako instance na cílové sadě zařízení IoT Edge. Automatizované nasazení konfiguruje 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 odpovídajícím způsobem je nakonfiguruje. Po vytvoření nasazení může operátor monitorovat stav nasazení a zjistit, jestli jsou cílová zařízení správně nakonfigurovaná.

S nasazením je možné nakonfigurovat jenom zařízení IoT Edge. Aby bylo možné 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é se mají nakonfigurovat na cílových zařízeních IoT Edge. Obsahuje metadata konfigurace pro všechny moduly, včetně požadovaných systémových modulů (konkrétně agenta IoT Edge a centra IoT Edge).

Metadata konfigurace pro každý modul zahrnují:

  • Verze
  • Type
  • Stav (například Spuštěno nebo Zastaveno)
  • Zásada restartování
  • Image a registr kontejneru
  • Trasy pro vstup a výstup dat

Pokud je image modulu uložená v privátním registru kontejneru, agent IoT Edge uchovává přihlašovací údaje registru.

Cílová podmínka

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

Máte například nasazení s cílovou podmínkou tags.environment = 'prod'. Při zahájení nasazení je 10 produkčních zařízení. Moduly jsou úspěšně nainstalovány na těchto 10 zařízeních. Stav agenta IoT Edge zobrazuje celkem 10 zařízení, 10 úspěšných odpovědí, 0 odpovědí na selhání a 0 čekajících odpovědí. Nyní přidáte pět dalších zařízení s tags.environment = 'prod'. Služba zjistí změnu a stav agenta IoT Edge teď zobrazuje 15 celkového počtu zařízení, 10 úspěšných odpovědí, 0 odpovědí na selhání a 5 čekajících odpovědí, zatímco se nasadí do pěti nových zařízení.

Pokud nasazení nemá žádnou cílovou podmínku, použije se na žádná zařízení.

K výběru cílových zařízení použijte jakoukoli logickou podmínku na značkách dvojčat zařízení, ohlášených vlastnostech dvojčete zařízení nebo ID zařízení. Pokud chcete použít podmínku se značkami, musíte do dvojčete zařízení přidat "tags":{} oddíl pod stejnou úroveň jako vlastnosti. Další informace o značkách ve dvojčeti zařízení najdete v tématu Principy a používání dvojčat zařízení ve službě IoT Hub. Další informace o operacích dotazů najdete v tématu Operátory dotazovacího jazyka služby IoT Hub a funkce IS_DEFINED.

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

  • deviceId ='linuxprod1'
  • tags.environment ='prod'
  • tags.environment = 'prod' AND tags.location = 'westus'
  • tags.environment = 'prod' OR tags.location = 'westus'
  • tags.operator = 'John' AND tags.environment = 'prod' AND NOT deviceId = 'linuxprod1'
  • properties.reported.devicemodel = '4000x'
  • IS_DEFINED(tags.remote)
  • NOT IS_DEFINED(tags.location.building)
  • tags.environment != null
  • [žádné]

Při vytváření cílové podmínky zvažte tato omezení:

  • Ve dvojčeti zařízení můžete vytvořit cílovou podmínku pouze pomocí značek, ohlášených vlastností nebo ID zařízení.
  • Dvojité uvozovky nejsou povoleny v žádné části cílové podmínky. Použijte jednoduché uvozovky.
  • Jednoduché uvozovky představují hodnoty cílové podmínky. Pokud je tedy součástí názvu zařízení, musíte uvozovat jednoduchou uvozovku s jinou jednoduchou uvozovkou. Chcete-li například cílit na zařízení s názvem operator'sDevice, zapisovat deviceId='operator''sDevice'.
  • Čísla, písmena a následující znaky jsou povoleny v hodnotách cílové podmínky: "()<>@,;:\\"/?={} \t\n\r.
  • V klíčích cílových podmínek nejsou povolené následující znaky:/;

Priorita

Priorita definuje, jestli se má nasazení použít na cílové zařízení vzhledem k jiným nasazením. Priorita nasazení je kladné celé číslo v rozsahu od 0 do 2 147 483 647. Větší čísla označují vyšší prioritu. Pokud zařízení IoT Edge cílí na více než jedno nasazení, nasazení s nejvyšší prioritou se použije. Nasazení s nižšími prioritami se nepoužijí ani se sloučí. Pokud je zařízení cílem se dvěma nebo více nasazeními se stejnou prioritou, použije se naposledy vytvořené nasazení (určené časovým razítkem vytvoření).

Popisky

Popisky jsou páry klíč/hodnota řetězce, které můžete použít k filtrování a seskupování nasazení. Nasazení může mít více popisků. Popisky jsou volitelné a nemají vliv na konfiguraci zařízení IoT Edge.

Metriky

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

  • Cílem je zobrazit zařízení IoT Edge, která odpovídají podmínce cílení na nasazení.
  • Použité zobrazí cílená zařízení IoT Edge, na která cílí jiné nasazení s vyšší prioritou.
  • Úspěšné generování sestav ukazuje zařízení IoT Edge, která hlásí jejich moduly úspěšně nasazené.
  • Selhání generování sestav ukazuje zařízení IoT Edge, která hlásí jeden nebo více modulů jako neúspěšně nasazená. Pokud chcete tuto chybu dále prošetřit, připojte se k těmto zařízením vzdáleně a prohlédněte si soubory protokolu.

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é zařízení můžou hlásit zpět v důsledku použití konfigurace nasazení. Metriky můžou dotazovat hlášené vlastnosti dvojčete modulu EdgeHub, jako jsou lastDesiredStatus nebo last Připojení Time.

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 zařízení IoT Edge.

Vrstvené nasazení

Vrstvené nasazení jsou automatické nasazení, která se dají kombinovat, aby se snížil počet jedinečných nasazení, která je potřeba 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.

Vrstvené nasazení mají stejné základní komponenty jako jakékoli automatické nasazení. Cílí na zařízení na základě značek ve dvojčatech zařízení a poskytují stejné funkce týkající se popisků, metrik a hlášení stavu. Vrstvené nasazení mají také přiřazené priority. Místo použití priority k určení, které nasazení se na zařízení použije, určuje priorita, jak se na zařízení řadí více nasazení. Pokud mají například dvě vrstvené nasazení modul nebo trasu se stejným názvem, použije se vrstvené nasazení s vyšší prioritou, zatímco se přepíše nižší priorita.

Moduly modulu runtime systému, označované jako edgeAgent a edgeHub, nejsou nakonfigurované jako součást vrstveného nasazení. Jakékoli zařízení IoT Edge, na které cílí vrstvené nasazení, potřebuje nejprve standardní automatické nasazení použité na něj. Automatické nasazení poskytuje základ, na kterém se dají přidat vrstvené nasazení.

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

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

Screenshot of showing that standard automatic deployments need to accommodate every module combination.

Jakmile se ale společnost přepne na vrstvené automatické nasazení, může vytvořit stejné kombinace modulů pro své budovy s menším počtem nasazení, která se mají spravovat. Každý modul má vlastní vrstvené nasazení a značky zařízení určují, které moduly se přidají do každé budovy.

Screenshot that shows how layered automatic deployments simplify scenarios where the same modules are combined in different ways.

Konfigurace dvojčete modulu

Při práci s vícevrstvými nasazeními můžete záměrně nebo jinak mít dvě nasazení se stejným modulem, který cílí na zařízení. V takových případech se můžete rozhodnout, jestli by nasazení s vyšší prioritou mělo přepsat dvojče modulu nebo k němu připojit. Můžete mít například nasazení, které použije stejný modul na 100 různých zařízení. 10 těchto zařízení je však v zabezpečených zařízeních a potřebuje další konfiguraci, aby bylo možné komunikovat prostřednictvím proxy serverů. Pomocí vrstveného nasazení můžete přidat vlastnosti dvojčete modulu, které těmto 10 zařízením umožní zabezpečenou komunikaci bez přepsání informací o stávajících dvojčatech modulu ze základního nasazení.

V manifestu nasazení můžete připojit požadované vlastnosti dvojčete modulu. Ve standardním nasazení byste přidali vlastnosti do části properties.desired dvojčete modulu. Ve vrstveném nasazení ale můžete deklarovat novou podmnožinu požadovaných vlastností.

Například ve standardním nasazení můžete přidat modul simulovaného senzoru teploty s následujícími požadovanými vlastnostmi, které můžou posílat data v 5sekundových intervalech:

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

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

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

Zařízení, které má obě použitá nasazení, bude odrážet následující vlastnosti dvojčete modulu pro simulovaný senzor teploty:

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

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

Postupné zavedení

Postupné zavedení je celkový proces, kdy operátor nasadí změny do širší sady zařízení IoT Edge. Cílem je provádět změny postupně, aby se snížilo riziko provádění rozsáhlých zásadních změn. Automatické nasazení pomáhají spravovat postupné zavádění napříč vozovým parkem zařízení IoT Edge.

Postupné zavedení se provede v následujících fázích a krocích:

  1. Vytvořte testovací prostředí zařízení 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í. Cílová podmínka by měla cílit na testovací prostředí zařízení IoT Edge.
  3. Ověřte novou konfiguraci modulu v testovacím prostředí.
  4. Aktualizujte nasazení tak, aby zahrnovalo podmnožinu produkčních zařízení IoT Edge přidáním nové značky do podmínky cílení. Také se ujistěte, že priorita nasazení je vyšší než jiná nasazení, která jsou aktuálně určená pro tato zařízení.
  5. Ověřte, že nasazení proběhlo úspěšně na cílových zařízeních IoT Edge. Zobrazí se stav nasazení.
  6. Aktualizujte nasazení tak, aby cílily na všechna zbývající produkční zařízení IoT Edge.

Vrácení zpět

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

Odstranění nasazení neodebere moduly z cílových zařízení. Musí existovat další nasazení, které definuje novou konfiguraci pro zařízení, i když je to prázdné nasazení.

Odstranění nasazení ale může z cílového zařízení odebrat moduly, pokud se jednalo o vrstvené nasazení. Vrstvené nasazení aktualizuje základní nasazení a potenciálně přidává moduly. Odebráním vrstveného nasazení se odebere aktualizace základního nasazení a potenciálně se odeberou moduly.

Například zařízení má základní nasazení A a vrstvené nasazení O a M na něj použité (aby se nasazení A, O a M nasadila do zařízení). Pokud se pak odstraní vrstvené nasazení M, na zařízení se použije A a O a moduly, které jsou jedinečné pro nasazení M, se odeberou.

Proveďte vrácení zpět v následující sekvenci:

  1. Ověřte, že na stejnou sadu zařízení cílí i druhé nasazení. Pokud je cílem vrácení zpět odebrat všechny moduly, 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í přestala splňovat cílovou podmínku.
  3. Ověřte, že vrácení zpět proběhlo úspěšně. Zobrazí se stav nasazení.
    • Nasazení vrácených zpět by už nemělo u zařízení, která byla vrácena zpět, zobrazovat stav.
    • Druhé nasazení by teď mělo zahrnovat stav nasazení pro zařízení, která byla vrácena zpět.

Další kroky