Megosztás a következőn keresztül:


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

A következőkre vonatkozik: IoT Edge 1.4 pipa IoT Edge 1.4

Fontos

Az IoT Edge 1.5 LTS és az IoT Edge 1.4 támogatott kiadások. 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ára, tesztelésére és üzembe helyezésére az Azure IoT Edge-ben a klasszikus szerkesztő használatával. Másik lehetőségként a YAML-t is használhatja.

A folyamatos integráció és a 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

Buildfolyamat létrehozása a folyamatos integrációhoz

Ebben a szakaszban egy új buildfolyamatot hoz létre. A folyamatot úgy konfigurálja, hogy automatikusan fusson, és közzétegye a buildnaplókat az IoT Edge-megoldás módosításainak beadásakor.

  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 egy új buildelési folyamat 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. Válassza ki forrásként az Azure Repos Gitet , majd válassza ki azt a projektet, adattárat és ágat, amelyben az 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, ügynökkészletét és ügynök specifikációját.

    Kiválaszthatja a Microsoft által üzemeltetett készletet vagy egy önkiszolgáló készletet, amelyet ön kezel.

    A folyamat leírásában válassza ki a megfelelő ügynökspecifikációt a célplatform alapján:

    • Ha linuxos amd64 platformon szeretné létrehozni a modulokat, válassza az ubuntu-18.04-et

    • Ha a modulokat a Windows 1809-tárolókhoz készült amd64 platformon szeretné létrehozni, akkor saját üzemeltetésű ügynököt kell beállítania a Windowson.

    • Ha linuxos arm32v7 vagy arm64 platformon szeretné létrehozni a modulokat, akkor linuxos önkiszolgáló ügynököt kell beállítania.

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

  6. A folyamat előre konfigurálva van egy 1. ügynökfeladat nevű feladattal. A pluszjel (+) kiválasztásával négy feladatot adhat hozzá a feladathoz: kétszer az Azure IoT Edge-et , egyszer másolhatja a fájlokat , és egyszer közzéteheti a buildösszetevőket . Keresse meg az egyes tevékenységeket, és vigye az egérmutatót a tevékenység 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 tevékenység a buildelési folyamatban.

  7. Válassza ki az első Azure IoT Edge-feladatot a szerkesztéséhez. Ez a feladat a megoldásban lévő összes modult a megadott célplatformmal hozza létre. 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 Build modul lemezképek lehetőséget.
    .template.json fájl Jelölje ki a három pontot (...), és lépjen az IoT Edge-megoldást tartalmazó adattár deployment.template.json fájljához.
    Alapértelmezett platform Válassza ki a modulokhoz megfelelő operációs rendszert a célzott IoT Edge-eszköz alapján.
    Kimeneti változók Adjon meg egy hivatkozásnevet a deployment.json fájl által létrehozott fájl elérési útjához, például az élhez.

    A tevékenységről és paramétereiről további információt az Azure IoT Edge-tevékenységben talál.

    Ezek a konfigurációk a fájlban definiált lemezké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 modulképek összeállítása segít a változók lecserélésében a fájlban module.json megadott pontos értékre. A Visual Studióban vagy a Visual Studio Code-ban .env meg kell adnia a fájl tényleges értékét. Az Azure Pipelinesban a Folyamatváltozók lapon állíthatja be az értéket. Válassza a Folyamatszerkesztő menü Változók lapjának nevét és értékét az alábbiak szerint:

    • ACR_ADDRESS: Az 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 az Azure Portalon.

    Ha a projektben más változók is vannak, ezen a lapon megadhatja a nevet és az értéket. A buildelési modul lemezképei csak a formátummal rendelkező ${VARIABLE} változókat 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 az összes modulrendszerképet leküldi 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é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 az előfizetését.
    Azure Container Registry Válassza ki a modulrendszerképek tárolásához 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 az Azure Container Registryt 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, az Új lehetőséget választva hozzon létre egy beállításjegyzék-szolgáltatáskapcsolatot.
    .template.json fájl Jelölje ki a három pontot (...), és lépjen az IoT Edge-megoldást tartalmazó adattár deployment.template.json fájljához.
    Alapértelmezett platform Válassza ki a modulokhoz megfelelő operációs rendszert a célzott IoT Edge-eszköz alapján.
    Beállításjegyzék 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 tevékenységről és paramétereiről további információt az Azure IoT Edge-tevékenységben talál.

    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ális beállításokban a Modul(ok) megkerülésével megkerülheti az adott beállításjegyzékhez nem tartozó lemezképeket.

  9. Jelölje ki a Fájlok másolása feladatot a szerkesztéshez. Ezzel a feladatsal fájlokat másolhat az összetevő átmeneti könyvtárába.

    Paraméter Leírás
    Megjelenített név Az alapértelmezett név vagy testreszabás használata
    Forrásmappa A másolandó fájlokat tartalmazó mappa.
    Tartalom Két sor hozzáadása: deployment.template.json és **/module.json. Ez a két fájl bemenetként szolgál az IoT Edge üzembehelyezési jegyzékének 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 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.

  10. A szerkesztéshez válassza ki a 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 folyamat számára.

    Paraméter Leírás
    Megjelenített név Használja az alapértelmezett nevet vagy a testreszabást.
    Közzétételi útvonal Adja meg a változót $(Build.ArtifactStagingDirectory). További információért lásd a Változók összeállítása című témakört.
    Összetevő neve Az alapértelmezett név használata: drop
    Az összetevő közzétételi helye Az alapértelmezett hely használata: 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.

  11. Nyissa meg az Eseményindítók lapot, és jelölje be a jelölőnégyzetet a folyamatos integráció engedélyezéséhez. 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. Válassza a Mentés > üzenetsor legördülő listájában a Mentés lehetőséget.

Ez a folyamat mostantól automatikusan fut, amikor új kódot küld az adattárba. Az utolsó feladat, amely közzéteszi a folyamat összetevőit, 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, é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_USER: 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.

Feljegyzé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-feladattal rétegzett üzembe helyezésként hozhatja létre az üzembe helyezést. 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

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