Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:
IoT Edge 1.5
Fontos
Az IoT Edge 1.5 LTS a támogatott kiadás. Az IoT Edge 1.4 LTS 2024. november 12-én megszűnik. Ha egy korábbi kiadáson dolgozik, olvassa el az IoT Edge frissítése című témakört.
Az Azure CLI használatával automatikus Azure IoT Edge-üzembe helyezést hozhat létre, és több eszköz üzembe helyezését kezelheti egyszerre. Az IoT Edge automatikus üzembe helyezései az Azure IoT Hub eszközfelügyeleti funkciójának részét képezik. Az üzembe helyezésekkel több modult helyezhet üzembe több eszközön, nyomon követheti a modulok állapotát és állapotát, és szükség esetén módosításokat végezhet.
Ebben a cikkben az Azure CLI-t és az IoT-bővítményt állítja be. Ezután modulokat helyezhet üzembe az IoT Edge-eszközök egy csoportjában, és cli-parancsokkal monitorozza az előrehaladást.
Előfeltételek
IoT Hub az Azure-előfizetésben.
Egy vagy több IoT Edge-eszköz.
Ha nincs beállítva IoT Edge-eszköz, létrehozhat egyet egy Azure-beli virtuális gépen. Kövesse az alábbi rövid útmutatók lépéseit: Virtuális Linux-eszköz létrehozása vagy virtuális Windows-eszköz létrehozása.
Az Azure CLI a környezetben. Az Azure CLI-verziónak 2.0.70-es vagy újabb verziónak kell lennie. Az ellenőrzéshez használható
az --version. Ez a verzió támogatja az „az” bővítményparancsokat, és ebben a verzióban került bevezetésre a Knack parancskeretrendszer.Az Azure CLI IoT-bővítménye.
Üzembehelyezési jegyzék konfigurálása
Az üzembehelyezési jegyzék egy JSON-dokumentum, amely leírja, hogy mely modulokat kell üzembe helyezni, hogyan áramlik az adatforgalom a modulok között, valamint a modul ikerpéldányainak kívánt tulajdonságait. További információ: Modulok üzembe helyezése és útvonalak létrehozása az IoT Edge-ben.
Ha modulokat szeretne üzembe helyezni az Azure CLI használatával, mentse az üzembehelyezési jegyzékfájlt helyileg .txt fájlként. A következő szakaszban található fájl elérési útját fogja használni, amikor futtatja a parancsot a konfiguráció eszközre való alkalmazásához.
Íme egy alapszintű üzembehelyezési jegyzék egy modullal példaként.
{
"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
}
}
}
}
}
Feljegyzés
Ez a minta üzembehelyezési jegyzék az IoT Edge-ügynökhöz és -központhoz az 1.1-es sémaverziót használja. A séma 1.1-es verziója az IoT Edge 1.0.10-es verziójával együtt jelenik meg. Lehetővé teszi olyan funkciók használatát, mint a modul indítási sorrendje és az útvonalak rangsorolása.
Rétegzett üzembe helyezés
A rétegzett üzembe helyezési típusok olyan automatikus telepítések, amelyek egymásra halmozhatók. A rétegzett üzemelő példányokról további információt az IoT Edge automatikus üzembe helyezésének ismertetése önálló eszközökhöz vagy nagy méretekben című témakörben talál.
Rétegzett üzembe helyezéseket az Azure CLI-vel hozhat létre és kezelhet, mint bármely automatikus üzembe helyezést, mindössze néhány különbséggel. A rétegzett üzembe helyezés létrehozása után az Azure CLI ugyanúgy működik a rétegzett üzemelő példányok esetében, mint bármely üzembe helyezésnél. Rétegzett üzembe helyezés létrehozásához adja hozzá a --layered jelölőt a létrehozási parancshoz.
A második különbség az üzembehelyezési jegyzék összeállítása. A standard automatikus üzembe helyezésnek tartalmaznia kell a rendszer futtatókörnyezeti moduljait és minden felhasználói modult. A rétegzett üzemelések csak felhasználói modulokra korlátozódhatnak. A rétegzett üzemelő példányoknak szabványos automatikus üzembe helyezésre is szükségük van egy eszközön, hogy minden IoT Edge-eszköz szükséges összetevőit, például a rendszer futtatókörnyezeti moduljait ellássa.
Íme egy alapszintű rétegzett üzembehelyezési jegyzék egy modullal példaként.
{
"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
}
}
}
}
}
Feljegyzés
Ez a rétegzett üzembehelyezési jegyzék kissé eltér a szabványos üzembehelyezési jegyzéktől. A futtatókörnyezeti modulok kívánt tulajdonságai össze vannak csukva, és pont jelölést használnak. Ez a formázás szükséges ahhoz, hogy az Azure Portal felismerjen egy rétegzett üzembe helyezést. Példa:
properties.desired.modules.<module_name>properties.desired.routes.<route_name>
Az előző példa egy modul rétegzett üzembehelyezési beállítását properties.desired mutatja be. Ha ez a rétegzett üzembe helyezés egy olyan eszközt céloz meg, amelyben már alkalmazva van ugyanaz a modul, felülírja a meglévő kívánt tulajdonságokat. Ha felülírás helyett frissíteni szeretné a kívánt tulajdonságokat, adjon meg egy új alszakaszt. Példa:
"SimulatedTemperatureSensor": {
"properties.desired.layeredProperties": {
"SendData": true,
"SendInterval": 5
}
}
Ugyanezt az alábbi szintaxissal is kifejezheti:
"SimulatedTemperatureSensor": {
"properties.desired.layeredProperties.SendData" : true,
"properties.desired.layeredProperties.SendInterval": 5
}
Feljegyzés
Jelenleg minden réteges üzembe helyezésnek tartalmaznia kell egy edgeAgent érvényes objektumot. Még akkor is, ha egy rétegzett üzembe helyezés csak a modul tulajdonságait frissíti, tartalmazzon egy üres objektumot. Például: "$edgeAgent":{} Egy üres edgeAgent objektummal rendelkező rétegzett üzembe helyezés a modul ikerpéldányában célzottként jelenik meg, nem mint edgeAgent.
Rétegzett üzembe helyezés létrehozása:
- Adja hozzá a jelzőt
--layeredaz Azure CLI létrehozási parancsához. - Ne tartalmazzon rendszermodulokat.
- Használjon teljes pont jelölést az
$edgeAgentand$edgeHub.
A modulok ikerpéldányainak réteges telepítésekben való konfigurálásával kapcsolatos további információkért lásd a rétegzett üzembe helyezést ismertető témakört.
Eszközök azonosítása címkék használatával
Az üzembe helyezés előtt meg kell adnia, hogy mely eszközöket szeretné érinteni. Az Azure IoT Edge az ikereszköz címkéivel azonosítja az eszközöket.
Minden eszköz több olyan címkét is tartalmazhat, amelyet bármilyen módon definiálhat, ami logikus a megoldáshoz. Ha például intelligens épületek egy campusát felügyeli, az alábbi címkéket adhatja hozzá egy eszközhöz:
"tags":{
"location":{
"building": "20",
"floor": "2"
},
"roomtype": "conference",
"environment": "prod"
}
Az ikereszközökről és címkékről további információt az IoT Hubban található ikereszközök ismertetése és használata című témakörben talál.
Üzembe helyezés létrehozása
Modulok üzembe helyezése az eszközök céleszközeihez az üzembehelyezési jegyzékkel és egyéb paraméterekkel rendelkező üzembe helyezés létrehozásával.
Futtassa az az iot edge deployment create parancsot az üzembe helyezés létrehozásához:
az iot edge deployment create --deployment-id <deployment-id> --hub-name <hub-name> --content <file-path> --labels "<labels>" --target-condition "<target-query>" --priority <priority>
Adja hozzá a --layered jelölőt egy rétegzett üzembe helyezés létrehozásához.
A az iot edge deployment create parancs a következő paramétereket használja:
- --layered: Opcionális jelző, amely az üzembe helyezést rétegzett üzembe helyezésként azonosítja.
-
--deployment-id: Az IoT Hubban létrehozott üzembe helyezés neve. Használjon egyedi nevet legfeljebb 128 kisbetűvel. Kerülje a szóközöket és az érvénytelen karaktereket:
& ^ [ ] { } \ | " < > /. Ez a paraméter kötelező. - --content: Az üzembehelyezési jegyzék JSON-fájljának elérési útja. Ez a paraméter kötelező.
-
--hub-name: Annak az IoT Hubnak a neve, ahol az üzembe helyezés létrejön. A központnak az aktuális előfizetésben kell lennie. Módosítsd az aktuális előfizetésed a
az account set -s <subscription-name>futtatásával. -
--labels: Név/érték párok, amelyek leírják és segítik a telepítések követését. A címkék JSON-formázást használnak a nevekhez és értékekhez. Például:
{"HostPlatform":"Linux", "Version":"3.0.1"} -
--target-condition: Feltétel, amely meghatározza, hogy mely eszközök legyenek megcélzva ezzel az üzembe helyezéssel. A feltétel az ikereszköz-címkéken vagy az ikereszköz jelentett tulajdonságain alapul, és meg kell egyeznie a kifejezés formátumával. Például:
tags.environment='test' and properties.reported.devicemodel='4000x'Ha nem adja meg a célfeltételt, az üzembe helyezés egyetlen eszközre sem lesz alkalmazva. - --priority: Pozitív egész szám. Ha két vagy több üzembe helyezés ugyanarra az eszközre irányul, a legmagasabb prioritású üzembe helyezés érvényes.
-
--metrikák: Azok a metrikák, amelyek lekérdezik a
edgeHubjelentett tulajdonságokat az üzembe helyezés állapotának nyomon követéséhez. A metrikák JSON-bemenetet vagy fájlelérési utat használnak. Például:'{"queries": {"mymetric": "SELECT deviceId FROM devices WHERE properties.reported.lastDesiredStatus.code = 200"}}'
Az Azure CLI-vel történő üzembe helyezés monitorozásához lásd: IoT Edge-környezetek monitorozása.
Feljegyzés
Új IoT Edge-telepítés létrehozása akár 5 percet is igénybe vehet, mire az IoT Hub feldolgozhatja az új konfigurációt, és elküldheti az új kívánt tulajdonságokat a megcélzott eszközöknek.
Központi telepítés módosítása
Az üzembe helyezés módosításakor a módosítások azonnal replikálódnak az összes megcélzott eszközre.
Ha frissíti a célfeltételt, a következő változások történnek:
- Ha egy eszköz nem felel meg a régi célfeltételnek, de megfelel az új célfeltételnek, és ez az üzembe helyezés az adott eszköz legmagasabb prioritása, a rendszer ezt az üzembe helyezést alkalmazza az eszközre.
- Ha egy jelenleg az üzemelő példányt futtató eszköz már nem felel meg a célfeltételnek, eltávolítja ezt az üzembe helyezést, és a következő legmagasabb prioritású üzembe helyezést veszi igénybe.
- Ha egy jelenleg az üzemelő példányt futtató eszköz már nem felel meg a célfeltételnek, és nem felel meg a többi üzembe helyezés célfeltételének, az eszközön nem történik változás. Az eszköz továbbra is a jelenlegi állapotában futtatja az aktuális moduljait, de már nem kezelik az üzembe helyezés részeként. Miután az eszköz megfelel egy másik üzembe helyezés célfeltételének, eltávolítja ezt az üzembe helyezést, és felveszi az újat.
Nem frissítheti az üzembe helyezés tartalmát, amely tartalmazza az üzembe helyezési jegyzékben meghatározott modulokat és útvonalakat. Az üzembe helyezés tartalmának frissítéséhez hozzon létre egy új üzembe helyezést, amely ugyanazokat az eszközöket célozza meg magasabb prioritással. Egy meglévő modul bizonyos tulajdonságait módosíthatja, beleértve a célfeltételt, a címkéket, a metrikákat és a prioritást.
Az az iot edge deployment update paranccsal frissítheti az üzemelő példányt:
az iot edge deployment update --deployment-id <deployment-id> --hub-name <hub-name> --set <property1.property2='value'>
Az üzembehelyezési frissítési parancs a következő paramétereket használja:
- --deployment-id: Az üzembe helyezés neve az IoT Hubban.
-
--hub-name: Annak az IoT Hubnak a neve, ahol az üzembe helyezés létezik. A központnak az aktuális előfizetésben kell lennie. Ha másik előfizetésre szeretne váltani, futtassa a parancsot
az account set -s <subscription-name>. -
--set: Egy tulajdonság módosítása az üzembe helyezésben. A következő tulajdonságokat módosíthatja:
-
targetCondition(például:targetCondition=tags.location.state='Oregon') labelspriority
-
- --add: Adjon hozzá egy új tulajdonságot az üzembe helyezéshez, beleértve a célfeltételeket vagy címkéket.
- --remove: Távolítsa el a meglévő tulajdonságot, beleértve a célfeltételeket vagy címkéket.
Üzembe helyezés törlése
Az üzembe helyezés törlésekor az eszközök a következő legmagasabb prioritású üzembe helyezést használják. Ha az eszközök nem felelnek meg egy másik üzembe helyezés célfeltételének, a modulok nem törlődnek az üzembe helyezés törlésekor.
Futtassa az az iot edge deployment delete parancsot az üzembe helyezés törléséhez:
az iot edge deployment delete --deployment-id <deployment-id> --hub-name <hub-name>
A deployment delete parancs a következő paramétereket használja:
- --deployment-id. Az IoT Hubban található üzembe helyezés neve.
-
--hub-name. Annak az IoT Hubnak a neve, amelyben az üzembe helyezés létezik. A központnak az aktuális előfizetésben kell lennie. Váltson a kívánt előfizetésre a parancs használatával
az account set -s [subscription name].
Következő lépések
További információ a modulok IoT Edge-eszközökön való üzembe helyezéséről.