Folyamatos integráció és folyamatos üzembe helyezés Azure IoT Edge-eszközökön

A következőkre 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 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.

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

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.

  1. Jelentkezzen be az Azure DevOps-szervezetbe (https://dev.azure.com/{your organization}), és nyissa meg az 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. 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.

    Képernyőkép arról, hogyan hozhat létre új buildfolyamatot az Új folyamat gombbal.

  3. A Hol található a kód? lapon válassza az Azure Repos Git lehetőségetYAML. Ha a klasszikus szerkesztővel szeretné létrehozni a projekt buildfolyamatait, tekintse meg a klasszikus szerkesztő útmutatóját.

  4. Válassza ki azt az adattárat, amely számára folyamatot hoz létre.

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

  5. 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 buildelési folyamat elindításához válassza a Starter-folyamat vagy a Meglévő Azure Pipelines YAML-fájlját

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

    Képernyőkép a Feladatkatalógus megnyitásához az Asszisztens megjelenítése lehetőség kiválasztásáról.

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

    Képernyőkép a Tevékenységek használata palettáról, valamint arról, hogyan adhat hozzá tevékenységeket a folyamathoz.

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

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

  9. Válassza a Mentés a Mentés és futtatás legördülő menüt a jobb felső sarokban.

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

Képernyőkép a folyamat eseményindító beállításainak áttekintéséről a További műveletek menü Eseményindítók menüjéből.

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, és válassza az + Ú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á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.

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

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

    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 egy új kiadás jön létre minden alkalommal, amikor új build érhető el.

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

  7. 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 fejlesztési szakasz 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-et .

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

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

    Azure IoT Edge-feladatok hozzáadása a fejlesztői 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.

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.

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

  2. A buildelési feladatokat a jobb felső sarokban található Futtatás folyamat gombjára kattintva indíthatja el a buildelési folyamatban.

    A buildelési folyamat manuális aktiválása a Folyamat futtatása gombbal

  3. Tekintse át a futtatási folyamat beállításait. 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. 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.

    A feladat naplókimenetének áttekintése

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

    Kiadás fejlesztői verzióra

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

    Kiadási naplók

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