Folyamatos integráció és folyamatos üzembe helyezés Azure IoT Edge-eszközökre (klasszikus szerkesztő)
A következőre 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 tartalmaz egy beépített Azure IoT Edge feladatot, amely segít a DevOps bevezetésében az Azure IoT Edge-alkalmazásokkal. Ez a cikk bemutatja, hogyan használhatja az Azure Pipelines folyamatos integrációs és folyamatos üzembehelyezési funkcióit alkalmazások gyors és hatékony létrehozásához, teszteléséhez és üzembe helyezéséhez az Azure-IoT Edge a klasszikus szerkesztő használatával. Másik lehetőségként használhatja a YAML-et is.
Ebből a cikkből megtudhatja, hogyan hozhat létre buildelési és kiadási folyamatokat az Azure Pipelines beépített Azure IoT Edge feladataival a IoT Edge megoldáshoz. 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 a IoT Edge megoldáskódot, és létrehozza a tárolórendszerképeket. |
Leküldéses modul rendszerképe | Leküldi a modulrendszerképeket a megadott tárolóregisztrációs adatbázisba. |
Üzembehelyezési jegyzék létrehozása | Létrehoz egy deployment.template.json fájlt és a változókat, majd létrehozza a végső IoT Edge üzembehelyezési jegyzékfájlt. |
Üzembe helyezés IoT Edge-eszközökön | IoT Edge központi telepítéseket hoz létre egy vagy több IoT Edge eszközön. |
Ha másként nincs megadva, a jelen cikkben szereplő eljárások nem vizsgálják meg a feladatparamétereken keresztül elérhető összes funkciót. További információkat találhat az alábbi forrásokban:
- Feladat verziója
- Speciális – Ha lehetséges, adja meg azokat a modulokat, amelyeket nem szeretne felépíteni.
- Vezérlési beállítások
- Környezeti változók
- Kimeneti változók
Előfeltételek
Egy Azure-adattár. Ha még nincs ilyenje, létrehozhat egy új Git-adattárat a projektben. Ebben a cikkben létrehoztunk egy IoTEdgeRepo nevű adattárat.
Az adattárba véglegesített és leküldett IoT Edge megoldás. Ha új mintamegoldást szeretne létrehozni a cikk teszteléséhez, kövesse az Azure IoT Edge-modulok fejlesztése a Visual Studio Code használatával című cikk lépéseit. Ebben a cikkben egy IoTEdgeSolution nevű megoldást hoztunk létre az adattárban, amely egy filtermodule nevű modul kódját tartalmazza.
Ebben a cikkben csak a Visual Studio Code-ban vagy a Visual Studióban található IoT Edge-sablonok által létrehozott megoldásmappa szükséges. 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ás deployment.template.json fájljának elérési útját, amelyet több lépésben használ. Ha nem ismeri az üzembehelyezési sablon szerepkörét, tekintse meg a modulok üzembe helyezésének és az útvonalak létrehozásának módját ismertető cikket.
Tipp
Ha új megoldást hoz létre, először klónozza az adattárat helyileg. Ezután a megoldás létrehozásakor dönthet úgy, 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álhat Azure Container Registry vagy külső 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 üzembehelyezési szakaszok teszteléséhez. A rövid útmutatókban szereplő cikkeket követve létrehozhat egy IoT Edge-eszközt Linux vagy Windows rendszeren
Buildfolyamat létrehozása folyamatos integrációhoz
Ebben a szakaszban egy új buildfolyamatot hoz létre. A folyamatot úgy konfigurálja, hogy automatikusan fusson, és tegye közzé a buildnaplókat, amikor a IoT Edge megoldás módosításait ellenőrzi.
Jelentkezzen be az Azure DevOps-szervezetbe (
https://dev.azure.com/{your organization}
), és nyissa meg a IoT Edge megoldástárat tartalmazó projektet.A projekt bal oldali panel menüjében válassza a Folyamatok lehetőséget. A lap közepén válassza a Folyamat létrehozása lehetőséget. Vagy ha már rendelkezik buildelési folyamatokkal, válassza a jobb felső sarokban található Új folyamat gombot.
A Hol található a kód? lap alján válassza a Klasszikus szerkesztő használata lehetőséget. Ha a YAML használatával szeretné létrehozni a projekt buildfolyamatait, tekintse meg a YAML-útmutatót.
Kövesse az utasításokat a folyamat létrehozásához.
Adja meg az új buildelési folyamat forrásadatait. Forrásként válassza az Azure Repos Git elemet, majd válassza ki azt a projektet, adattárat és ágat, ahol a IoT Edge megoldáskód található. Ezután válassza a Folytatás lehetőséget.
Sablon helyett válassza az Üres feladat lehetőséget.
A folyamat létrehozása után a folyamatszerkesztőbe kerül. Itt módosíthatja a folyamat nevét, az ügynökkészletet és az ügynök specifikációját.
Kiválaszthatja a Microsoft által üzemeltetett készletet vagy egy ön által felügyelt saját üzemeltetésű készletet.
A folyamat leírásában válassza ki a megfelelő ügynökspecifikációt a célplatform alapján:
Ha a modulokat az amd64 linuxos tárolókhoz készült platformon szeretné létrehozni, válassza az ubuntu-18.04 elemet
Ha a modulokat a Windows 1809-tárolókhoz készült amd64 platformon szeretné létrehozni, be kell állítania a saját üzemeltetésű ügynököt a Windowson.
Ha az arm32v7 vagy arm64 platformon szeretné összeállítani a modulokat Linux-tárolókhoz, be kell állítania a saját üzemeltetésű ügynököt Linuxon.
A folyamat előre konfigurálva van az 1. ügynökfeladat nevű feladattal. A pluszjelet (+) választva négy feladatot adhat hozzá a feladathoz: az Azure IoT Edge kétszer, a Fájlok másolása egyszer és a BuildÖsszetevők közzététele egyszer. Keresse meg az egyes feladatokat, és vigye az egérmutatót a feladat nevére a Hozzáadás gomb megjelenítéséhez.
Mind a négy tevékenység hozzáadásakor az ügynökfeladat a következő példához hasonlóan néz ki:
Válassza ki az első Azure-IoT Edge feladatot a szerkesztéséhez. Ez a feladat a megoldás összes modulját létrehozza a megadott célplatformmal. Szerkessze a feladatot 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 a Modulrendszerképek létrehozása lehetőséget. .template.json fájl Válassza ki a három pontot (...), és keresse meg a deployment.template.json fájlt a IoT Edge megoldást tartalmazó adattárban. Alapértelmezett platform Válassza ki a modulok megfelelő operációs rendszerét a megcélzott IoT Edge eszköz alapján. Kimeneti változók Adjon meg egy referencianevet a deployment.json fájl által létrehozott fájl elérési útjához, például az edge fájlhoz. A feladatról és paramétereiről az Azure IoT Edge tevékenység című témakörben talál további információt.
Ezek a konfigurációk a fájlban definiált rendszerképtárat és címkét használják a
module.json
modul lemezképének elnevezéséhez és címkézéséhez. A buildelési modul rendszerképei a változókat a fájlbanmodule.json
megadott pontos értékre cserélik. A Visual Studióban vagy a Visual Studio Code-ban.env
meg kell adnia egy fájl tényleges értékét. Az Azure Pipelinesban a Folyamatváltozók lapon állíthatja be az értéket. Válassza a Változók lapot a folyamatszerkesztő menüben, és konfigurálja a nevet és az értéket az alábbiak szerint:- ACR_ADDRESS: A Azure Container Registry Bejelentkezési kiszolgáló értéke. A bejelentkezési kiszolgáló értékét a tárolóregisztrációs adatbázis áttekintési oldalán találja a Azure Portal.
Ha a projektben más változók is szerepelnek, ezen a lapon adhatja meg a nevet és az értéket. A buildmodul-rendszerképek csak a formátumú változókat
${VARIABLE}
ismerik fel. Győződjön meg arról, hogy ezt a formátumot használja a**/module.json
fájlokban.A szerkesztéshez válassza ki a második Azure-IoT Edge feladatot. Ez a feladat leküldi az összes modulrendszerképet a kiválasztott tárolóregisztrációs adatbázisba.
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 a Leküldéses modul rendszerképek lehetőséget. 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 az előfizetését. Azure Container Registry Válassza ki a modulrendszerképek tárolására használt tárolóregisztrációs adatbázis típusát. Attól függően, hogy melyik beállításjegyzéktípust választja, az űrlap megváltozik. Ha a Azure Container Registry választja, a legördülő listák segítségével válassza ki az Azure-előfizetést és a tárolóregisztrációs adatbázis nevét. Ha az Általános tárolóregisztrációs adatbázist választja, válassza az Új lehetőséget egy beállításjegyzék-szolgáltatáskapcsolat létrehozásához. .template.json fájl Válassza ki a három pontot (...), és keresse meg a deployment.template.json fájlt a IoT Edge megoldást tartalmazó adattárban. Alapértelmezett platform Válassza ki a modulok megfelelő operációs rendszerét a megcélzott IoT Edge eszköz alapján. Regisztrációs adatbázis hitelesítő adatainak hozzáadása az üzembehelyezési jegyzékhez Adja meg az igaz értéket a beállításjegyzék hitelesítő adatainak hozzáadásához a Docker-rendszerképek üzembehelyezési jegyzékbe való leküldéséhez. A feladatról és paramétereiről az Azure IoT Edge tevékenység című témakörben talál további információt.
Ha több tárolóregisztrációs adatbázissal rendelkezik a modulrendszerképek üzemeltetéséhez, duplikálnia kell ezt a feladatot, ki kell választania egy másik tárolóregisztrációs adatbázist, és a Speciálisbeállításokban a Modul(ok) megkerülése parancsot kell használnia a nem ehhez a beállításjegyzékhez tartozó rendszerképek megkerüléséhez.
Jelölje ki a Fájlok másolása feladatot a szerkesztéshez. Ezzel a feladatsal fájlokat másolhat az összetevő előkészítési könyvtárába.
Paraméter Leírás Megjelenített név Az alapértelmezett név használata vagy testreszabás Forrásmappa A másolandó fájlokat tartalmazó mappa. Tartalom Adjon hozzá két sort: deployment.template.json
és**/module.json
. Ez a két fájl szolgál bemenetként a IoT Edge üzembehelyezési jegyzék létrehozásához.Célmappa Adja meg a változót $(Build.ArtifactStagingDirectory)
. A leírásról további információt a Változók létrehozása című témakörben talál.A feladatról és paramétereiről további információt a Fájlok másolása feladat című témakörben talál.
A szerkesztéshez válassza ki a Build Artifacts (Buildösszetevők közzététele ) feladatot. Adja meg az összetevő átmeneti könyvtárának elérési útját a tevékenységhez, hogy az elérési út közzétehető legyen a kiadási folyamathoz.
Paraméter Leírás Megjelenített név Használja az alapértelmezett nevet vagy a testreszabást. Közzététel elérési útja Adja meg a változót $(Build.ArtifactStagingDirectory)
. További információt a Változók létrehozása című témakörben talál.Összetevő neve Az alapértelmezett név használata: drop Összetevő közzétételi helye Az alapértelmezett hely használata: Azure Pipelines A feladatró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.
Nyissa meg az Eseményindítók lapot, és jelölje be a Folyamatos integráció engedélyezése jelölőnégyzetet. Győződjön meg arról, hogy a kódot tartalmazó ág szerepel a fájlban.
- A Mentés & üzenetsor legördülő listájában válassza a Mentés lehetőséget.
Ez a folyamat most már úgy van konfigurálva, hogy automatikusan fusson, amikor új kódot küld le az adattárba. Az utolsó feladat, amely a folyamat összetevőit teszi közzé, elindít egy kiadási folyamatot. 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, majd a + Ú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álódik egy 1. fázis nevű fázissal. Nevezze át az 1. fázist fejlesztésre , és kezelje folyamatos üzembehelyezési folyamatként a fejlesztési környezethez. A folyamatos üzembehelyezési folyamatok általában több fázisból áll, beleértve a fejlesztést, az előkészítést és a bevezetést. Különböző neveket használhat, és továbbiakat hozhat létre a DevOps-gyakorlat alapján. 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.
Csatolja a kiadást a buildelési folyamat által közzétett buildösszetevőkhöz. Kattintson a Hozzáadás elemre az összetevők területén.
Az Összetevő hozzáadása lapon válassza a Build lehetőséget Forrástípusként. Válassza ki a projektet és a létrehozott buildfolyamatot. 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 minden új build megjelenésekor létrejön egy új kiadás.
A fejlesztési fázis 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 fázist. Válassza ki az Ügynök feladatot , és módosítsa a megjelenítendő nevetQA-ra. Az ügynökfeladat részletei konfigurálhatók, de az üzembehelyezé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.
Válassza ki az első Azure-IoT Edge feladatot, és konfigurálja az alábbi é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 a(z) Generate deployment manifest
lehetőséget..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 van közzétéve.Alapértelmezett platform Válassza ki a modulok megfelelő operációs rendszerét a megcélzott IoT Edge eszköz alapján. Kimeneti elérési út Adja meg az elérési utat $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json
. Ez az elérési út az üzembe helyezési jegyzékfájl utolsó IoT Edge.Ezek a konfigurációk segítenek lecserélni a modul lemezképének URL-címeit a
deployment.template.json
fájlban. Az Üzembe helyezési jegyzék létrehozása is segít lecserélni a változókat a fájlbandeployment.template.json
meghatározott pontos értékre. A Visual Studio/Visual Studio Code-ban a fájl tényleges.env
é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 az alábbiak szerint:- ACR_ADDRESS: A Azure Container Registry Bejelentkezési kiszolgáló értéke. A bejelentkezési kiszolgálót a tárolóregisztrációs adatbázis Áttekintés oldaláról kérdezheti le a Azure Portal.
- ACR_PASSWORD: Az Ön Azure Container Registry jelszava.
- ACR_USER: Az Ön Azure Container Registry felhasználóneve.
Ha a projektben más változók is vannak, itt adhatja meg a nevet és az értéket. Az Üzembe helyezé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 a(z) Deploy to IoT Edge devices
lehetőséget.Üzembehelyezési fájl Adja meg az elérési utat $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json
. Ez az elérési út az üzembehelyezési jegyzékfájl IoT Edge fájl.Azure-előfizetés Válassza ki a IoT Hub tartalmazó előfizetést. IoT Hub 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 a IoT Edge eszközazonosító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 a IoT Hub IoT Edge eszközkészletének. Ha eszközcímkéket szeretne használni feltételként, frissítenie kell a megfelelő eszközcímkéket IoT Hub ikereszközzel. Frissítse a IoT Edge üzembehelyezési azonosítót és IoT Edge központi telepítési prioritást a speciális beállítások között. További információ a több eszközre történő telepítés létrehozásáról: IoT Edge automatikus központi telepítések ismertetése. 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ú A IoT Edge üzembehelyezési azonosítóhoz adja meg a következőt $(System.TeamProject)-$(Release.EnvironmentName)
: . Ez a változó a projekt és a kiadás nevét a IoT Edge üzembehelyezési azonosítójával képezi le.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
true
úgy, hogy 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.
Megjegyzés
A rétegzett üzemelő példányok még nem támogatottak az Azure IoT Edge-feladatokban az Azure DevOpsban.
Az Azure DevOpsban azonban azure CLI-feladatokkal is létrehozhatja az üzembe helyezést rétegzett üzemelő példányként. A beágyazott szkript értékeként használhatja az az iot edge deployment create parancsot:
az iot edge deployment create -d {deployment_name} -n {hub_name} --content modules_content.json --layered true
Ellenőrizze IoT Edge CI/CD-t a buildelési és kiadási folyamatokkal
Buildfeladat 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 tesztelé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 buildfolyamatot.
A buildelési feladatokat a jobb felső sarokban található Folyamat futtatása gombra kattintva indíthatja el.
Tekintse át a Folyamat futtatása beállításokat. Ezután válassza a Futtatás lehetőséget.
Válassza az 1. ügynökfeladatot a futtatás folyamatának watch. A feladat kimenetének naplóit a feladat kiválasztásával tekintheti át.
Ha a buildelési folyamat sikeresen befejeződött, elindít egy kiadást a fejlesztési fázisba. A sikeres fejlesztői kiadás IoT Edge üzembe helyezést hoz létre 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, először tekintse meg a naplókat. A naplók megtekintéséhez navigáljon a folyamatfuttatás összegzéséhez, és válassza ki a feladatot és a tevékenységet. Ha egy adott feladat 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 lásd: Naplók áttekintése a folyamatproblémák diagnosztizálásához.
Következő lépések
- A IoT Edge üzembe helyezésének ismertetése: IoT Edge üzemelő példányok ismertetése önálló eszközökhöz vagy nagy méretekben
- 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 IoT Edge modulok nagy léptékben történő monitorozása című témakörben találja.