Folyamatos integráció és folyamatos üzembe helyezés Azure IoT Edge-eszközökön
A következőkre vonatkozik: IoT Edge 1.4
Fontos
Az IoT Edge 1.4 a támogatott kiadás. Ha egy korábbi kiadáson dolgozik, olvassa el az IoT Edge frissítése című témakört.
Az Azure Pipelines beépített Azure IoT Edge-feladataival egyszerűen bevezetheti a DevOpst az Azure IoT Edge-alkalmazásokkal. Ez a cikk bemutatja, hogyan hozhat létre, tesztelhet és helyezhet üzembe Azure IoT Edge-modulokat a YAML használatával az Azure Pipelines használatával. Másik lehetőségként használhatja a klasszikus szerkesztőt is.
Ebből a cikkből megtudhatja, hogyan hozhat létre build- és kiadási folyamatokat az IoT Edge-megoldáshoz az Azure Pipelines beépített Azure IoT Edge-feladataival . A folyamathoz hozzáadott Minden Azure IoT Edge-feladat az alábbi négy művelet egyikét valósítja meg:
Művelet | Leírás |
---|---|
Modulrendszerképek létrehozása | Felveszi az IoT Edge-megoldáskódot, és létrehozza a tárolólemezképeket. |
Leküldéses modul lemezképe | Leküldi a modulrendszerképeket a megadott tárolóregisztrációs adatbázisba. |
Üzembehelyezési jegyzék létrehozása | Egy deployment.template.json fájlt és a változókat, majd létrehozza a végleges IoT Edge üzembehelyezési jegyzékfájlt. |
Üzembe helyezés IoT Edge-eszközökön | IoT Edge-telepítéseket hoz létre egy vagy több IoT Edge-eszközön. |
Ha másként nincs megadva, a cikkben szereplő eljárások nem tárják fel a tevékenységparamétereken keresztül elérhető összes funkciót. További információkat találhat az alábbi forrásokban:
Előfeltételek
Egy Azure-adattár. Ha nincs ilyenje, létrehozhat egy új Git-adattárat a projektben. Ebben a cikkben létrehoztunk egy IoTEdgeRepo nevű adattárat.
Egy IoT Edge-megoldás véglegesítve és leküldve az adattárba. Ha új mintamegoldást szeretne létrehozni a cikk teszteléséhez, kövesse az Azure IoT Edge-modulok Visual Studio Code használatával történő fejlesztésének lépéseit. Ebben a cikkben létrehoztunk egy IoTEdgeSolution nevű megoldást az adattárban, amely egy filtermodule nevű modul kódját tartalmazza.
Ehhez a cikkhez mindössze az IoT Edge-sablonok által a Visual Studio Code-ban vagy a Visual Studióban létrehozott megoldásmappára van szüksége. A folytatás előtt nem kell létrehoznia, leküldnie, üzembe helyeznie vagy hibakeresést végeznie a kódban. Ezeket a folyamatokat az Azure Pipelinesban fogja beállítani.
Ismerje meg a megoldásban található deployment.template.json fájl elérési útját, amelyet több lépésben is használ. Ha nem ismeri az üzembehelyezési sablon szerepét, olvassa el a modulok üzembe helyezésének és az útvonalak létrehozásának módját ismertető témakört.
Tipp.
Ha új megoldást hoz létre, először helyileg klónozza az adattárat. Ezután a megoldás létrehozásakor kiválaszthatja, hogy közvetlenül az adattár mappájában hozza létre. Innen egyszerűen véglegesítheti és leküldheti az új fájlokat.
Egy tárolóregisztrációs adatbázis, ahol leküldheti a modulrendszerképeket. Használhatja az Azure Container Registryt vagy egy harmadik féltől származó beállításjegyzéket.
Aktív Azure IoT Hub legalább két IoT Edge-eszközzel a különálló tesztelési és éles üzembe helyezési szakaszok teszteléséhez. Az alábbi rövid útmutatók segítségével IoT Edge-eszközt hozhat létre Linuxon vagy Windowson
Az Azure Repos használatáról további információt a Kód megosztása a Visual Studióval és az Azure Repos szolgáltatással című témakörben talál.
Buildfolyamat létrehozása a folyamatos integrációhoz
Ebben a szakaszban egy új buildfolyamatot hoz létre. Úgy konfigurálja a folyamatot, hogy automatikusan fusson, amikor bejelentkezik a minta IoT Edge-megoldás módosításaiba, és közzéteszi a buildnaplókat.
Jelentkezzen be az Azure DevOps-szervezetbe (
https://dev.azure.com/{your organization}
), és nyissa meg az IoT Edge-megoldástárat tartalmazó projektet.A projekt bal oldali panel menüjében válassza a Folyamatok lehetőséget. Válassza a Folyamat létrehozása lehetőséget a lap közepén. Vagy ha már rendelkezik buildelési folyamatokkal, kattintson a jobb felső sarokban található Új folyamat gombra.
A Hol található a kód? lapon válassza az Azure Repos Git lehetőséget
YAML
. Ha a klasszikus szerkesztővel szeretné létrehozni a projekt buildfolyamatait, tekintse meg a klasszikus szerkesztő útmutatóját.Válassza ki azt az adattárat, amely számára folyamatot hoz létre.
A Folyamat konfigurálása lapon válassza a Starter-folyamatot. Ha rendelkezik egy már meglévő Azure Pipelines YAML-fájllal, amelyet a folyamat létrehozásához szeretne használni, kiválaszthatja a Meglévő Azure Pipelines YAML-fájlt , és megadhatja az ágat és az elérési utat az adattárban a fájlhoz.
A folyamat YAML-jének áttekintése lapon kiválaszthatja az alapértelmezett nevet
azure-pipelines.yml
a folyamat konfigurációs fájljának átnevezéséhez.Válassza a Megjelenítési segéd lehetőséget a Feladatok palettának megnyitásához.
Feladat hozzáadásához helyezze a kurzort a YAML végére, vagy bárhol, ahol a tevékenység utasításait hozzá szeretné adni. Keresse meg és válassza ki az Azure IoT Edge-et. Töltse ki a tevékenység paramétereit az alábbiak szerint. Ezután válassza a Hozzáadás lehetőséget.
Paraméter Leírás Művelet Válassza a Build modul lemezképek lehetőséget. .template.json fájl Adja meg az IoT Edge-megoldást tartalmazó adattár deployment.template.json fájljának elérési útját. Alapértelmezett platform Válassza ki a modulokhoz megfelelő operációs rendszert a célzott IoT Edge-eszköz alapján. A tevékenységről és paramétereiről további információt az Azure IoT Edge-tevékenységben talál.
Tipp.
Az egyes tevékenységek hozzáadása után a szerkesztő automatikusan kiemeli a hozzáadott sorokat. A véletlen felülírás megakadályozása érdekében törölje a vonalak kijelölését, és adjon új helyet a következő tevékenységnek, mielőtt további tevékenységeket ad hozzá.
Ismételje meg ezt a folyamatot további három feladat hozzáadásához a következő paraméterekkel:
Feladat: Azure IoT Edge
Paraméter Leírás Művelet Válassza a Leküldéses modul rendszerképét. Tárolóregisztrációs adatbázis típusa Használja az alapértelmezett típust: Azure Container Registry. Azure-előfizetés Válassza ki előfizetését. Azure Container Registry Válassza ki a folyamathoz használni kívánt beállításjegyzéket. .template.json fájl Adja meg az IoT Edge-megoldást tartalmazó adattár deployment.template.json fájljának elérési útját. Alapértelmezett platform Válassza ki a modulokhoz megfelelő operációs rendszert a célzott IoT Edge-eszköz alapján. A tevékenységről és paramétereiről további információt az Azure IoT Edge-tevékenységben talál.
Feladat: Fájlok másolása
Paraméter Leírás Forrásmappa A másolandó forrásmappa. Az üres az adattár gyökere. Használjon változókat, ha a fájlok nincsenek az adattárban. Példa: $(agent.builddirectory)
Tartalom Két sor hozzáadása: deployment.template.json
és**/module.json
.Célmappa Adja meg a változót $(Build.ArtifactStagingDirectory)
. A leírásról további információt a Build változók című témakörben talál.A tevékenységről és paramétereiről további információt a Fájlok másolása tevékenység című témakörben talál.
Feladat: Buildösszetevők közzététele
Paraméter Leírás Közzétételi útvonal Adja meg a változót $(Build.ArtifactStagingDirectory)
. A leírásról további információt a Build változók című témakörben talál.Összetevő neve Adja meg az alapértelmezett nevet: drop
Az összetevő közzétételi helye Használja az alapértelmezett helyet: Azure Pipelines
A tevékenységről és paramétereiről további információt a Build artifacts tevékenység közzététele című témakörben talál.
Válassza a Mentés a Mentés és futtatás legördülő menüt a jobb felső sarokban.
A folyamatos integráció eseményindítója alapértelmezés szerint engedélyezve van a YAML-folyamathoz. Ha szerkeszteni szeretné ezeket a beállításokat, válassza ki a folyamatot, és válassza a Szerkesztés lehetőséget a jobb felső sarokban. A jobb felső sarokban válassza a Futtatás gomb melletti További műveletek lehetőséget, és válassza az Eseményindítók lehetőséget. A folyamatos integráció a folyamat neve alatt engedélyezettként jelenik meg. Ha meg szeretné tekinteni az eseményindító részleteit, jelölje be a YAML folyamatos integrációs eseményindító felülbírálása jelölőnégyzetet .
Folytassa a következő szakaszt a kiadási folyamat létrehozásához.
Kiadási folyamat létrehozása folyamatos üzembe helyezéshez
Ebben a szakaszban létrehoz egy kiadási folyamatot, amely úgy van konfigurálva, hogy automatikusan fusson, amikor a buildelési folyamat elveti az összetevőket, és megjeleníti az üzembehelyezési naplókat az Azure Pipelinesban.
Hozzon létre egy új folyamatot, és adjon hozzá egy új szakaszt:
A Folyamatok alatti Kiadások lapon válassza az + Új folyamat lehetőséget. Vagy ha már rendelkezik kiadási folyamatokkal, válassza az + Új gombot, és válassza az + Új kiadási folyamat lehetőséget.
Amikor a rendszer kéri, hogy válasszon ki egy sablont, válassza az Üres feladat kezdetét.
Az új kiadási folyamat inicializálva lesz egy fázissal, az 1. fázissal. Nevezze át az 1. fázist a fejlesztési környezet folyamatos üzembehelyezési folyamatának fejlesztésére és kezelésére. A folyamatos üzembehelyezési folyamatok általában több fázissal rendelkeznek, beleértve a fejlesztést, az előkészítést és a produkálást. Különböző neveket használhat, és a DevOps-gyakorlat alapján továbbiakat hozhat létre. Az átnevezés után zárja be a szakasz részleteit tartalmazó ablakot.
A kiadási folyamatot úgy is átnevezheti, hogy felül az "Új kiadási folyamat" szöveget választja.
Kapcsolja össze a kiadást a buildelési folyamat által közzétett buildösszetevőkkel. Kattintson a Hozzáadás az összetevők területen elemre.
Az Összetevő hozzáadása lapon válassza a Build elemet forrástípusként. Válassza ki a projektet és a létrehozott buildelési folyamatot. Ha szeretné, módosíthatja a Forrás aliast leíróbbra. Ezután válassza a Hozzáadás lehetőséget.
Nyissa meg az összetevő-eseményindítókat, és válassza a kapcsolót a folyamatos üzembehelyezési eseményindító engedélyezéséhez. Most egy új kiadás jön létre minden alkalommal, amikor új build érhető el.
A fejlesztői szakasz előre konfigurálva van egy feladattal és nulla tevékenységgel. A folyamat menüjében válassza a Feladatok lehetőséget, majd válassza ki a fejlesztési szakaszt. Válassza ki az Ügynök feladatot, és módosítsa a megjelenítendő nevet QA-ra. Az ügynökfeladat részletei konfigurálhatók, de az üzembe helyezési feladat nem érzéketlen a platform számára, így bármilyen ügynökspecifikációt használhat a kiválasztott ügynökkészletben.
A minőségbiztosítási feladatban válassza a pluszjelet (+) két tevékenység hozzáadásához. Keresse meg és adja hozzá kétszer az Azure IoT Edge-et .
Válassza ki az első Azure IoT Edge-feladatot , és konfigurálja a következő értékekkel:
Paraméter Leírás Megjelenített név A megjelenített név automatikusan frissül, amikor a Művelet mező megváltozik. Művelet Válassza ki Generate deployment manifest
..template.json fájl Adja meg az elérési utat: $(System.DefaultWorkingDirectory)/Drop/drop/deployment.template.json
. Az elérési út a buildelési folyamatból lesz közzétéve.Alapértelmezett platform Válassza ki a modulokhoz megfelelő operációs rendszert a célzott IoT Edge-eszköz alapján. Kimeneti elérési út Írja be az elérési utat $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json
. Ez az elérési út az IoT Edge utolsó üzembehelyezési jegyzékfájlja.Ezek a konfigurációk segítenek lecserélni a modulrendszerkép URL-címeit a
deployment.template.json
fájlban. Az üzembehelyezési jegyzék létrehozása emellett segít a változók lecserélésében a fájlbandeployment.template.json
meghatározott pontos értékre. A Visual Studio/Visual Studio Code-ban.env
a fájl tényleges értékét adja meg. Az Azure Pipelinesban a Kiadási folyamat változói lapon állíthatja be az értéket. Lépjen a Változók lapra, és konfigurálja a nevet és az értéket a következő módon:- ACR_ADDRESS: Az Azure Container Registry bejelentkezési kiszolgáló értéke. A bejelentkezési kiszolgáló az Azure Portal tárolóregisztrációs adatbázisának Áttekintés oldaláról kérhető le.
- ACR_PASSWORD: Az Azure Container Registry jelszava.
- ACR_U Standard kiadás R: Az Azure Container Registry felhasználóneve.
Ha a projektben más változók is vannak, ebben a lapon adhatja meg a nevet és az értéket. Az üzembehelyezési jegyzék létrehozása csak az ízben
${VARIABLE}
lévő változókat ismeri fel. Győződjön meg arról, hogy ezt az ízt használja a*.template.json
fájlokban."registryCredentials": { "<ACR name>": { // Your Azure Container Registry **Registry name** value "username": "${ACR_USER}", "password": "${ACR_PASSWORD}", "address": "${ACR_ADDRESS}" } }
Válassza ki a második Azure IoT Edge-feladatot , és konfigurálja a következő értékekkel:
Paraméter Leírás Megjelenített név A megjelenített név automatikusan frissül, amikor a Művelet mező megváltozik. Művelet Válassza ki Deploy to IoT Edge devices
.Üzembehelyezési fájl Írja be az elérési utat $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json
. Ez az elérési út az IoT Edge üzembehelyezési jegyzékfájlja.Azure-előfizetés Válassza ki az IoT Hubot tartalmazó előfizetést. Iot-központ neve Válassza ki az IoT Hubot. Egy/több eszköz kiválasztása Adja meg, hogy a kiadási folyamat egy vagy több eszközön legyen-e üzembe helyezve. Ha egyetlen eszközön helyezi üzembe, adja meg az IoT Edge eszközazonosítóját. Ha több eszközön is üzembe helyez, adja meg az eszköz célfeltételét. A célfeltétel egy szűrő, amely megfelel az IoT Hub IoT Edge-eszközeinek. Ha eszközcímkéket szeretne használni feltételként, frissítenie kell a megfelelő eszközcímkéket az IoT Hub ikereszközével. Frissítse az IoT Edge üzembehelyezési azonosítóját és az IoT Edge üzembehelyezési prioritását a speciális beállításokban. Az üzembe helyezés több eszközhöz való létrehozásáról további információt az IoT Edge automatikus üzembe helyezésének ismertetése című témakörben talál. Eszközazonosító vagy célfeltétel Az előző kijelöléstől függően adjon meg egy eszközazonosítót vagy célfeltételt , amely több eszközön is üzembe helyezhető. Felsőfokú Az IoT Edge üzembehelyezési azonosítójának megadása $(System.TeamProject)-$(Release.EnvironmentName)
. Ez a változó leképozza a projektet és a kiadás nevét az IoT Edge üzembehelyezési azonosítójával.Ha a feladat során olyan rendszerképet használ, amely egy privát Docker megbízható beállításjegyzékben található, amely nem látható a nyilvános felhőben, beállíthatja a SKIP_MODULE_IMAGE_VALIDATION környezeti változót úgy, hogy
true
kihagyja a rendszerkép érvényesítését.Válassza a Mentés lehetőséget az új kiadási folyamat módosításainak mentéséhez. Térjen vissza a folyamatnézethez a menü Folyamat lapjának kiválasztásával.
IoT Edge CI/CD ellenőrzése a buildelési és kiadási folyamatokkal
A buildelési feladat aktiválásához leküldhet egy véglegesítést a forráskódtárba, vagy manuálisan aktiválhatja azt. Ebben a szakaszban manuálisan aktiválja a CI/CD-folyamatot annak ellenőrzéséhez, hogy működik-e. Ezután ellenőrizze, hogy az üzembe helyezés sikeres-e.
A bal oldali panel menüjében válassza a Folyamatok lehetőséget, és nyissa meg a cikk elején létrehozott buildelési folyamatot.
A buildelési feladatokat a jobb felső sarokban található Futtatás folyamat gombjára kattintva indíthatja el a buildelési folyamatban.
Tekintse át a futtatási folyamat beállításait. Ezután válassza a Futtatás lehetőséget.
A futtatás előrehaladásának megtekintéséhez válassza az 1 . ügynökfeladatot. A feladat kimenetének naplóit a feladat kiválasztásával tekintheti át.
Ha a buildelési folyamat sikeresen befejeződött, egy kiadást indít el a fejlesztési fázisban. A sikeres fejlesztői kiadás IoT Edge-üzembe helyezést hoz létre az IoT Edge-eszközök megcélzásához.
A kiadási naplók megtekintéséhez kattintson a fejlesztési fázisra.
Ha a folyamat sikertelen, kezdje a naplók megtekintésével. A naplók megtekintéséhez navigáljon a folyamatfuttatás összegzésére, és válassza ki a feladatot és a feladatot. Ha egy adott tevékenység meghiúsul, ellenőrizze az adott tevékenység naplóit. A naplók konfigurálásával és használatával kapcsolatos részletes utasításokért tekintse meg a folyamatproblémák diagnosztizálásához szükséges naplók áttekintését.
Következő lépések
- Az IoT Edge üzembe helyezésének ismertetése az IoT Edge önálló eszközökhöz vagy nagy léptékű üzemelő példányainak megismeréséhez
- Tekintse át az üzembe helyezés létrehozásának, frissítésének vagy törlésének lépéseit az Üzembe helyezés és az IoT Edge-modulok nagy méretekben történő monitorozása során.