Share via


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 pipa 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.

A folyamatos integrációs és folyamatos fejlesztési ágak ábrája a fejlesztéshez és a gyártáshoz.

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:

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.

  1. Jelentkezzen be az Azure DevOps-szervezetbe (https://dev.azure.com/{your organization}), és nyissa meg a IoT Edge megoldástárat tartalmazó projektet.

    Képernyőkép a DevOps-projekt megnyitásáról.

  2. 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.

    Képernyőkép egy új buildfolyamat létrehozásáról.

  3. 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épernyőkép a klasszikus szerkesztő használatáról.

  4. Kövesse az utasításokat a folyamat létrehozásához.

    1. 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.

      Képernyőkép a folyamat forrásának kiválasztásáról.

    2. Sablon helyett válassza az Üres feladat lehetőséget.

      Képernyőkép a buildelési folyamat üres feladatával való kezdésről.

  5. 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:

    Konfigurálja a buildügynök specifikációját.

  6. 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.

    Azure IoT Edge-feladat hozzáadása.

    Mind a négy tevékenység hozzáadásakor az ügynökfeladat a következő példához hasonlóan néz ki:

    Négy feladat a buildelési folyamatban.

  7. 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ájlban module.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.

  8. 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.

  9. 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.

  10. 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.

  11. 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.

Képernyőkép a folyamatos integrációs eseményindító bekapcsolásáról.

  1. 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:

  1. 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.

    Kiadási folyamat hozzáadása az + Új folyamat gombbal

  2. Amikor a rendszer kéri, hogy válasszon ki egy sablont, válassza az Üres feladat kezdetét.

    Kezdés egy üres feladattal a kiadási folyamathoz

  3. 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.

  4. 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.

    Kattintson a hozzáadás gombra a felület összetevők területén

  5. 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.

    Az Összetevő hozzáadása lapon válassza a Hozzáadás lehetőséget az összetevő létrehozásához

  6. 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.

    Nyissa meg az összetevő-eseményindítókat, és váltson a folyamatos üzembehelyezési eseményindító engedélyezéséhez

  7. 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 fejlesztési fázis feladatainak megtekintése a Feladatok lapon

  8. 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.

  9. 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ájlban deployment.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}"
      }
    }
    

    A kiadási folyamat változóinak konfigurálása a Változók lapon

  10. 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.

    Azure IoT Edge-feladatok hozzáadása a fejlesztési fázishoz

  11. 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.

  1. A bal oldali panel menüjében válassza a Folyamatok lehetőséget, és nyissa meg a cikk elején létrehozott buildfolyamatot.

  2. A buildelési feladatokat a jobb felső sarokban található Folyamat futtatása gombra kattintva indíthatja el.

    A buildfolyamat manuális aktiválása a Folyamat futtatása gombbal

  3. Tekintse át a Folyamat futtatása beállításokat. Ezután válassza a Futtatás lehetőséget.

    Adja meg a futtatási folyamat beállításait, és válassza a Futtatás lehetőséget

  4. 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.

    A feladat naplókimenetének áttekintése

  5. 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.

    Kiadás a fejlesztéshez

  6. A kiadási naplók megtekintéséhez kattintson a fejlesztési fázisra.

    Kiadási naplók

  7. 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