Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:
IoT Edge 1.5
Důležité
Podporovanou verzí je IoT Edge 1.5 LTS. IoT Edge 1.4 LTS je konec životnosti od 12. listopadu 2024. Pokud používáte starší verzi, podívejte se na článek Aktualizace IoT Edge.
Pomocí Azure CLI můžete vytvořit automatické nasazení Azure IoT Edge a spravovat nasazení pro mnoho zařízení najednou. Automatické nasazení pro IoT Edge jsou součástí funkce správy zařízení ve službě Azure IoT Hub. Nasazení umožňují nasadit více modulů do více zařízení, sledovat stav a stav modulů a v případě potřeby provádět změny.
V tomto článku nastavíte Azure CLI a rozšíření IoT. Pak nasadíte moduly do sady zařízení IoT Edge a budete monitorovat průběh pomocí příkazů rozhraní příkazového řádku.
Požadavky
Centrum IoT ve vašem předplatném Azure
Jedno nebo více zařízení IoT Edge.
Pokud nemáte nastavené zařízení IoT Edge, můžete ho vytvořit ve virtuálním počítači Azure. Postupujte podle kroků v jednom z těchto článků rychlého startu: Vytvoření virtuálního zařízení s Linuxem nebo vytvoření virtuálního zařízení s Windows.
Azure CLI ve vašem prostředí. Vaše verze Azure CLI musí být 2.0.70 nebo novější. Použijte
az --versionke kontrole. Tato verze podporuje příkazy rozšíření az a zavádí příkazové rozhraní Knack.Rozšíření IoT pro Azure CLI
Konfigurace manifestu nasazení
Manifest nasazení je dokument JSON, který popisuje, které moduly se mají nasadit, jak data proudí mezi moduly a požadovanými vlastnostmi dvojčat modulů. Další informace najdete v tématu O nasazení modulů a vytváření tras v IoT Edge.
Pokud chcete nasadit moduly pomocí Azure CLI, uložte manifest nasazení místně jako soubor .txt. Cestu k souboru použijete v další části, když spustíte příkaz pro aplikaci této konfigurace na vašem zařízení.
Tady je základní manifest nasazení s jedním modulem jako příkladem.
{
"content": {
"modulesContent": {
"$edgeAgent": {
"properties.desired": {
"schemaVersion": "1.1",
"runtime": {
"type": "docker",
"settings": {
"minDockerVersion": "v1.25",
"loggingOptions": "",
"registryCredentials": {}
}
},
"systemModules": {
"edgeAgent": {
"type": "docker",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-agent:1.5",
"createOptions": "{}"
}
},
"edgeHub": {
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-hub:1.5",
"createOptions": "{\"HostConfig\":{\"PortBindings\":{\"5671/tcp\":[{\"HostPort\":\"5671\"}],\"8883/tcp\":[{\"HostPort\":\"8883\"}],\"443/tcp\":[{\"HostPort\":\"443\"}]}}}"
}
}
},
"modules": {
"SimulatedTemperatureSensor": {
"version": "1.5",
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.5",
"createOptions": "{}"
}
}
}
}
},
"$edgeHub": {
"properties.desired": {
"schemaVersion": "1.1",
"routes": {
"upstream": "FROM /messages/* INTO $upstream"
},
"storeAndForwardConfiguration": {
"timeToLiveSecs": 7200
}
}
},
"SimulatedTemperatureSensor": {
"properties.desired": {
"SendData": true,
"SendInterval": 5
}
}
}
}
}
Poznámka:
Tento ukázkový manifest nasazení používá schéma verze 1.1 pro agenta a centrum IoT Edge. Schéma verze 1.1 je vydáno společně s IoT Edge verze 1.0.10. Umožňuje používat funkce, jako je pořadí spuštění modulu a stanovení priorit tras.
Vrstvené nasazení
Vrstvené nasazení jsou typem automatického nasazení, které můžete na sebe naskládat. Další informace o vrstvených nasazeních najdete v tématu Vysvětlení automatických nasazení IoT Edge pro jednotlivá zařízení nebo ve velkém měřítku.
Nasazení s vrstvenými vrstvami můžete vytvářet a spravovat pomocí Azure CLI stejně jako jakékoli automatické nasazení s několika rozdíly. Po vytvoření vrstveného nasazení funguje Azure CLI pro vrstvené nasazení stejně jako u jakéhokoli nasazení. Pokud chcete vytvořit vrstvené nasazení, přidejte --layered příznak do příkazu create.
Druhým rozdílem je způsob vytvoření manifestu nasazení. Standardní automatická nasazení musí obsahovat moduly systémového runtime a všechny uživatelské moduly. Vrstvené nasazení můžou zahrnovat pouze uživatelské moduly. Vrstvené nasazení také potřebují standardní automatické nasazení na zařízení, které poskytuje požadované součásti každého zařízení IoT Edge, jako jsou moduly modulu runtime systému.
Tady je základní vrstvený manifest nasazení s jedním modulem jako příkladem.
{
"content": {
"modulesContent": {
"$edgeAgent": {
"properties.desired.modules.SimulatedTemperatureSensor": {
"settings": {
"image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.5",
"createOptions": "{}"
},
"type": "docker",
"status": "running",
"restartPolicy": "always",
"version": "1.5"
}
},
"$edgeHub": {
"properties.desired.routes.upstream": "FROM /messages/* INTO $upstream"
},
"SimulatedTemperatureSensor": {
"properties.desired": {
"SendData": true,
"SendInterval": 5
}
}
}
}
}
Poznámka:
Tento manifest nasazení ve vrstvené vrstvě má trochu jiný formát než standardní manifest nasazení. Požadované vlastnosti modulů modulu runtime jsou sbalené a používají zápis tečky. Toto formátování se vyžaduje, aby Azure Portal rozpoznal vrstvené nasazení. Příklad:
properties.desired.modules.<module_name>properties.desired.routes.<route_name>
Předchozí příklad ukazuje vrstvené nastavení nasazení properties.desired pro modul. Pokud toto vrstvené nasazení cílí na zařízení, ve kterém je už použitý stejný modul, přepíše všechny existující požadované vlastnosti. Pokud chcete místo přepsání aktualizovat požadované vlastnosti, definujte nový pododdíl. Příklad:
"SimulatedTemperatureSensor": {
"properties.desired.layeredProperties": {
"SendData": true,
"SendInterval": 5
}
}
Můžete také vyjádřit totéž pomocí následující syntaxe:
"SimulatedTemperatureSensor": {
"properties.desired.layeredProperties.SendData" : true,
"properties.desired.layeredProperties.SendInterval": 5
}
Poznámka:
V současné době musí všechna vrstvené nasazení obsahovat objekt edgeAgent , který má být platný. I když vrstvené nasazení aktualizuje pouze vlastnosti modulu, zahrňte prázdný objekt. Například: "$edgeAgent":{}. Vrstvené nasazení s prázdným edgeAgent objektem se zobrazí jako zaměřené ve edgeAgent dvojčeti modulu, nikoli aplikované.
Chcete-li vytvořit vrstvené nasazení:
-
--layeredPřidejte příznak do příkazu create v Azure CLI. - Nezahrnujte systémové moduly.
- Použijte plný zápis tečky pod
$edgeAgenta$edgeHub.
Další informace o konfiguraci dvojčat modulů ve vrstvených nasazeních najdete v tématu Nasazení vrstvené.
Identifikace zařízení pomocí značek
Před vytvořením nasazení musíte určit, která zařízení chcete ovlivnit. Azure IoT Edge identifikuje zařízení pomocí značek ve dvojčeti zařízení.
Každé zařízení může mít více značek, které definujete jakýmkoli způsobem, který dává smysl pro vaše řešení. Pokud například spravujete areál inteligentních budov, můžete do zařízení přidat následující značky:
"tags":{
"location":{
"building": "20",
"floor": "2"
},
"roomtype": "conference",
"environment": "prod"
}
Další informace o dvojčatech a značkách zařízení najdete v tématu Principy a používání dvojčat zařízení ve službě IoT Hub.
Vytvoření nasazení
Nasaďte moduly do cílových zařízení vytvořením nasazení, které má manifest nasazení a další parametry.
Spuštěním příkazu az iot edge deployment create vytvořte nasazení:
az iot edge deployment create --deployment-id <deployment-id> --hub-name <hub-name> --content <file-path> --labels "<labels>" --target-condition "<target-query>" --priority <priority>
--layered Přidejte příznak pro vytvoření vrstveného nasazení.
Příkaz az iot edge deployment create používá následující parametry:
- --layered: Volitelný příznak, který identifikuje nasazení jako vrstvené nasazení.
-
--deployment-id: Název nasazení vytvořeného v centru IoT. Použijte jedinečný název s až 128 malými písmeny. Vyhněte se mezerám a těmto neplatným znakům:
& ^ [ ] { } \ | " < > /. Tento parametr je povinný. - --content: Cesta k souboru JSON manifestu nasazení. Tento parametr je povinný.
-
--hub-name: Název IoT hubu, kde se nasazení vytváří. Centrum musí být v aktuálním předplatném. Změňte aktuální předplatné spuštěním
az account set -s <subscription-name>příkazu . -
--labels: Páry názvů a hodnot, které popisují a pomáhají sledovat nasazení. Popisky používají formátování JSON pro jména a hodnoty. Například:
{"HostPlatform":"Linux", "Version":"3.0.1"}. -
--target-condition: Podmínka, která určuje, která zařízení jsou cílem tohoto nasazení. Podmínka je založená na značkách dvojčat zařízení nebo ohlášených vlastnostech dvojčete zařízení a měla by odpovídat formátu výrazu. Například:
tags.environment='test' and properties.reported.devicemodel='4000x'. Pokud cílovou podmínku nezadáte, nasazení se nepoužije na žádná zařízení. - --priority: Kladné celé číslo. Pokud dvě nebo více nasazení cílí na stejné zařízení, nasazení s nejvyšší prioritou se použije.
-
--metrics: Metriky, které dotazují
edgeHubohlášené vlastnosti, aby sledovaly stav nasazení. Metriky používají vstup JSON nebo cestu k souboru. Například:'{"queries": {"mymetric": "SELECT deviceId FROM devices WHERE properties.reported.lastDesiredStatus.code = 200"}}'.
Pokud chcete monitorovat nasazení pomocí Azure CLI, přečtěte si téma Monitorování nasazení IoT Edge.
Poznámka:
Když vytvoříte nové nasazení IoT Edge, může trvat až 5 minut, než IoT Hub zpracuje novou konfiguraci a odešle nové požadované vlastnosti cílovým zařízením.
Úprava nasazení
Když změníte nasazení, změny se okamžitě replikují do všech cílových zařízení.
Pokud cílovou podmínku aktualizujete, dojde k následujícím změnám:
- Pokud zařízení nesplňuje starou cílovou podmínku, ale splňuje novou cílovou podmínku a toto nasazení je pro toto zařízení nejvyšší prioritou, použije se toto nasazení na zařízení.
- Pokud zařízení, které toto nasazení aktuálně spouští, nesplňuje cílovou podmínku, odinstaluje toto nasazení a převezme další nasazení s nejvyšší prioritou .
- Pokud zařízení, na kterém je toto nasazení aktuálně spuštěné, nesplňuje cílovou podmínku a nesplňuje cílovou podmínku žádného jiného nasazení, nedojde na zařízení k žádné změně. Zařízení pokračuje v běhu svých aktuálních modulů v aktuálním stavu, ale v rámci této instalace se už nespravuje. Jakmile zařízení splní cílovou podmínku jiného nasazení, odinstaluje toto nasazení a převezme nové nasazení.
Obsah nasazení nelze aktualizovat, což zahrnuje moduly a trasy definované v manifestu nasazení. Pokud chcete aktualizovat obsah nasazení, vytvořte nové nasazení, které cílí na stejná zařízení s vyšší prioritou. Můžete upravit určité vlastnosti existujícího modulu, včetně cílové podmínky, popisků, metrik a priority.
K aktualizaci nasazení použijte příkaz az iot edge deployment update:
az iot edge deployment update --deployment-id <deployment-id> --hub-name <hub-name> --set <property1.property2='value'>
Příkaz aktualizace nasazení používá následující parametry:
- --deployment-id: Název nasazení v centru IoT.
-
--hub-name: Název IoT uzlu, ve kterém je nasazení. Centrum musí být v aktuálním předplatném. Pokud chcete přepnout na jiné předplatné, spusťte
az account set -s <subscription-name>příkaz . -
--set: Změňte vlastnost v nasazení. Můžete změnit následující vlastnosti:
-
targetCondition(napříkladtargetCondition=tags.location.state='Oregon') labelspriority
-
- --add: Přidejte pro nasazení novou vlastnost, včetně cílových podmínek nebo štítků.
- --remove: Odeberte existující vlastnost, včetně podmínek cílení nebo popisků.
Odstranění nasazení
Když odstraníte nasazení, budou zařízení používat další nasazení s nejvyšší prioritou. Pokud zařízení nesplňují cílovou podmínku jiného nasazení, moduly se při odstranění nasazení neodeberou.
Spuštěním příkazu az iot edge deployment delete odstraňte nasazení:
az iot edge deployment delete --deployment-id <deployment-id> --hub-name <hub-name>
Příkaz deployment delete používá následující parametry:
- --deployment-id. Název nasazení, které existuje v Centru IoT.
-
--hub-name. Název ioT Hubu, ve kterém nasazení 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
Přečtěte si další informace o nasazení modulů do zařízení IoT Edge.