Průběžná integrace a průběžné nasazování pro Azure IoT Edge zařízení

Platí pro:  ikona Ano IoT Edge 1,1  ikona ano IoT Edge 1,2

pomocí integrovaných Azure IoT Edge úloh v Azure Pipelines můžete snadno přijmout DevOps s vašimi Azure IoT Edge aplikacemi. tento článek ukazuje, jak můžete použít Azure Pipelines k sestavování, testování a nasazování Azure IoT Edge modulů pomocí YAML. Alternativně můžete použít klasický Editor.

Diagram – větve CI a CD pro vývoj a produkci

v tomto článku se naučíte, jak používat integrované úlohy Azure IoT Edge pro Azure Pipelines k vytváření kanálů sestavení a vydání pro vaše řešení IoT Edge. Každý Azure IoT Edge úkol přidaný do vašeho kanálu implementuje jednu z následujících čtyř akcí:

Akce Popis
Image modulu sestavení Převezme IoT Edge kód řešení a sestaví image kontejneru.
Image modulu push Vloží image modulu do určeného registru kontejneru.
Generovat manifest nasazení Převezme deployment.template.jssouboru a proměnných a pak vygeneruje konečný soubor manifestu nasazení IoT Edge.
Nasazení do zařízení IoT Edge Vytvoří IoT Edge nasazení do jednoho nebo více IoT Edge zařízení.

Pokud není uvedeno jinak, postupy v tomto článku nezkoumá všechny funkce dostupné prostřednictvím parametrů úlohy. Další informace naleznete v následujících zdrojích:

Požadavky

  • úložiště Azure Repos. Pokud ho ještě nemáte, můžete v projektu vytvořit nové úložiště Git. V tomto článku jsme vytvořili úložiště s názvem IoTEdgeRepo.

  • Řešení IoT Edge potvrzené a vložené do úložiště. pokud chcete vytvořit nové ukázkové řešení pro testování tohoto článku, postupujte podle kroků v tématu vývoj a ladění modulů v Visual Studio Code nebo vývoj a ladění modulů C# v Visual Studio. V tomto článku jsme vytvořili řešení v našem úložišti s názvem IoTEdgeSolution, které obsahuje kód pro modul s názvem filtermodule.

    pro tento článek stačí, když je složka řešení vytvořená šablonami IoT Edge v Visual Studio Code nebo Visual Studio. Než budete pokračovat, nemusíte tento kód sestavovat, předávat, nasazovat ani ladit. Tyto procesy nastavíte v Azure Pipelines.

    Znáte cestu k deployment.template.js v souboru ve vašem řešení, které se používá v několika krocích. Pokud nejste obeznámeni s rolí šablony nasazení, přečtěte si informace o tom, jak nasadit moduly a vytvořit trasy.

    Tip

    Pokud vytváříte nové řešení, naklonujte své úložiště jako první. Pak při vytváření řešení si můžete zvolit, že se má vytvořit přímo ve složce úložiště. Z nich můžete snadno potvrzovat a nabízet nové soubory.

  • Registr kontejnerů, kde můžete vkládat image modulu. Můžete použít Azure Container Registry nebo v registru třetí strany.

  • Aktivní Azure IoT Hub s aspoň dvěma IoT Edgemi zařízeními pro testování samostatných fází testování a produkčního nasazení. Pomocí článků rychlý Start můžete vytvořit zařízení IoT Edge v systému Linux nebo Windows

další informace o použití Azure Repos naleznete v tématu sdílení kódu s Visual Studio a Azure Repos

Vytvoření kanálu sestavení pro kontinuální integraci

V této části vytvoříte nový kanál sestavení. Nakonfigurujete, aby se kanál spouštěl automaticky při vrácení změn se změnami ukázkového IoT Edge řešení a publikování protokolů sestavení.

  1. přihlaste se k vaší Azure DevOps organizaci ( https://dev.azure.com/{your organization} ) a otevřete projekt, který obsahuje vaše IoT Edge úložiště řešení.

    otevřete DevOps projekt

  2. V nabídce levého podokna v projektu vyberte možnost Pipelines. V středu stránky vyberte vytvořit kanál . Nebo pokud již máte kanály sestavení, vyberte tlačítko Nový kanál v pravém horním rohu.

    Vytvoření nového kanálu sestavení pomocí tlačítka nový kanál

  3. na stránce kde je váš kód? vyberte Azure Repos Git YAML. Pokud chcete použít klasický editor k vytvoření kanálů sestavení projektu, přečtěte si článek Průvodce klasickým editorem.

  4. Vyberte úložiště, pro které vytváříte kanál.

    Výběr úložiště pro kanál sestavení

  5. Na stránce konfigurace vašeho kanálu vyberte Počáteční kanál. pokud máte existující soubor Azure Pipelines YAML, který chcete použít k vytvoření tohoto kanálu, můžete vybrat existující Azure Pipelines soubor YAML a zadat větev a cestu do úložiště do souboru.

    vyberte počáteční kanál nebo existující soubor Azure Pipelines YAML a začněte svůj kanál sestavení.

  6. Na stránce Zkontrolujte YAML kanálu můžete vybrat výchozí název azure-pipelines.yml pro přejmenování konfiguračního souboru kanálu.

    Výběrem Zobrazit pomocníka otevřete paletu úkoly .

    Výběrem Zobrazit pomocníka otevřete paletu úlohy.

  7. Pokud chcete přidat úlohu, umístěte kurzor na konec YAML nebo kdekoli chcete, aby se přidaly pokyny k vašemu úkolu. Vyhledejte a vyberte Azure IoT Edge. Vyplňte parametry úlohy následujícím způsobem. Pak vyberte Přidat.

    Parametr Popis
    Akce Vyberte Image modulu sestavení.
    .template.jsv souboru Zadejte cestu k deployment.template.js v souboru v úložišti, které obsahuje vaše řešení IoT Edge.
    Výchozí platforma Vyberte odpovídající operační systém pro vaše moduly na základě cíleného zařízení IoT Edge.

    Další informace o této úloze a jejích parametrech najdete v tématu Azure IoT Edge úlohy.

    Použití palety úlohy k přidání úkolů do kanálu

    Tip

    Po přidání každého úkolu Editor automaticky zvýrazní přidané řádky. Chcete-li zabránit náhodnému přepsání, zrušte výběr řádků a před přidáním dalších úkolů zadejte nové místo pro svůj další úkol.

  8. Tento postup opakujte, pokud chcete přidat tři další úkoly s následujícími parametry:

    • Úkol: Azure IoT Edge

      Parametr Popis
      Akce Vyberte Image modulu push.
      Typ registru kontejneru Použijte výchozí typ: Azure Container Registry.
      Předplatné Azure Vyberte své předplatné.
      Azure Container Registry Vyberte registr, který chcete použít pro kanál.
      .template.jsv souboru Zadejte cestu k deployment.template.js v souboru v úložišti, které obsahuje vaše řešení IoT Edge.
      Výchozí platforma Vyberte odpovídající operační systém pro vaše moduly na základě cíleného zařízení IoT Edge.

      Další informace o této úloze a jejích parametrech najdete v tématu Azure IoT Edge úlohy.

    • Úkol: kopírování souborů

      Parametr Popis
      Zdrojová složka Zdrojová složka, ze které se má kopírovat. Empty je kořenem tohoto repo. Proměnné použijte, pokud soubory nejsou v tomto repo. Příklad: $(agent.builddirectory).
      Obsah Přidejte dva řádky: deployment.template.json a **/module.json .
      Cílová složka Zadejte proměnnou $(Build.ArtifactStagingDirectory) . Informace o popisu najdete v tématu Sestavení proměnných.

      Další informace o této úkolu a jeho parametrech najdete v tématu Úloha kopírování souborů.

    • Úloha: Publikování sestav Artifacts

      Parametr Popis
      Cesta k publikování Zadejte proměnnou $(Build.ArtifactStagingDirectory) . Informace o popisu najdete v tématu Sestavení proměnných.
      Název artefaktu Zadejte výchozí název: drop
      Umístění publikování artefaktů Použijte výchozí umístění: Azure Pipelines

      Další informace o této úlohě a jejích parametrech najdete v tématu Publikování artefaktů sestavení .

  9. V rozevíracím seznamu Uložit a spustit v pravém horním rohu vyberte Uložit.

  10. Trigger pro kontinuální integraci je pro váš kanál YAML ve výchozím nastavení povolený. Pokud chcete tato nastavení upravit, vyberte svůj kanál a vpravo nahoře klikněte na Upravit. Vyberte Další akce vedle tlačítka Spustit v pravém horním rohu a přejděte na Aktivační události. Průběžná integrace se pod názvem vašeho kanálu zobrazuje jako povolená. Pokud chcete zobrazit podrobnosti o triggeru, zaškrtněte zde políčko Override the YAML continuous integration trigger (Přepsat trigger kontinuální integrace YAML).

    Pokud chcete zkontrolovat nastavení triggeru kanálu, podívejte se na aktivační události v části Další akce.

Pokračujte k další části a sestavte kanál verze.

Vytvoření kanálu vydání pro průběžné nasazování

V této části vytvoříte kanál pro vydávání verzí, který je nakonfigurován tak, aby běžel automaticky v případě, že kanál sestavení vyřazuje artefakty a zobrazí v Azure Pipelines protokoly nasazení.

Vytvořte nový kanál a přidejte novou fázi:

  1. Na kartě vydání v části kanály vyberte + Nový kanál. Nebo pokud již máte kanály verzí, klikněte na tlačítko + Nový a vyberte + Nový kanál vydání.

    Přidání kanálu vydání pomocí tlačítka + nový kanál

  2. Po zobrazení výzvy k výběru šablony zvolte, že chcete začít s prázdnou úlohou.

    Začínáme s prázdnou úlohou pro svůj kanál pro vydávání verzí

  3. Nový kanál vydaných verzí se inicializuje s jednou fází nazvanou fáze 1. Přejmenujte fázi 1 na vývoj a považovat ji za kanál průběžného nasazování pro vaše vývojové prostředí. Kanály průběžného nasazování mají obvykle několik fází včetně vývoje, přípravy a produkčního prostředí. Můžete použít různé názvy a vytvořit další v závislosti na DevOps praxi. Po přejmenování zavřete okno Podrobnosti fáze.

    Kanál pro vydávání verzí můžete také přejmenovat tak, že v horní části vyberete text nový kanál verze.

  4. Propojte tuto verzi s artefakty sestavení, které jsou publikovány kanálem sestavení. V oblasti artefakty klikněte na Přidat .

    Klikněte na Přidat v oblasti artefakty rozhraní.

  5. Na stránce Přidat artefakt vyberte sestavení jako typ zdroje. Vyberte projekt a kanál sestavení, který jste vytvořili. Pokud chcete, můžete zdrojový alias změnit na výstižnější. Pak vyberte Přidat.

    Na stránce Přidat artefakt vyberte Přidat a vytvořte artefakt.

  6. Otevřete triggery artefaktů a výběrem přepínače povolte aktivační událost průběžného nasazování. Nyní se vytvoří nová vydaná verze pokaždé, když bude k dispozici nové sestavení.

    Otevřete triggery artefaktů a přepněte se na povolení triggeru průběžného nasazování.

  7. Fáze vývoje je předem nakonfigurovaná s jednou úlohou a nulovými úkoly. V nabídce kanálu vyberte úlohy a pak zvolte fázi vývoje . Vyberte úlohu agenta a změňte její Zobrazovaný název na QA. Můžete nakonfigurovat podrobnosti o úloze agenta, ale úloha nasazení je nezávislá na platformě, takže můžete použít jakoukoli specifikaci agenta ve zvoleném fondu agentů.

    Zobrazit úlohy pro vaši fázi vývoje na kartě úlohy

  8. V úloze QA vyberte znaménko plus ( + ) a přidejte dvě úlohy. Vyhledejte a přidejte Azure IoT Edge dvakrát.

  9. Vyberte první úlohu Azure IoT Edge a nakonfigurujte ji s následujícími hodnotami:

    Parametr Popis
    Zobrazované jméno Zobrazovaný název se automaticky aktualizuje při změně pole akce.
    Akce Vyberte Generate deployment manifest.
    .template.jsv souboru Zadejte cestu: $(System.DefaultWorkingDirectory)/Drop/drop/deployment.template.json . Cesta je publikovaná z kanálu sestavení.
    Výchozí platforma Vyberte odpovídající operační systém pro vaše moduly na základě cíleného zařízení IoT Edge.
    Výstupní cesta Vložte cestu $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json . Tato cesta je konečným souborem manifestu nasazení IoT Edge.

    Tyto konfigurace pomáhají nahradit adresy URL imagí modulu v deployment.template.json souboru. Manifest pro generování nasazení také pomáhá nahradit proměnné s přesnou hodnotu, kterou jste definovali v deployment.template.json souboru. V VS/VS Code zadáváte skutečnou hodnotu v .env souboru. V Azure Pipelines nastavíte hodnotu na kartě proměnné kanálu uvolnění . Přejděte na kartu proměnné a nakonfigurujte název a hodnotu následujícím způsobem:

    • ACR_ADDRESS: hodnota přihlašovacího serveru Azure Container Registry. Přihlašovací server můžete načíst ze stránky přehled v registru kontejneru v Azure Portal.
    • ACR_PASSWORD: vaše heslo Azure Container Registry.
    • ACR_USER: vaše Azure Container Registry uživatelské jméno.

    Pokud máte v projektu další proměnné, můžete na této kartě zadat název a hodnotu. Manifest pro generování nasazení může rozpoznat pouze proměnné, které jsou v ${VARIABLE} charakteru. Ujistěte se, že tento charakter používáte ve svých *.template.json souborech.

    "registryCredentials": {
      "<ACR name>": { // Your Azure Container Registry **Registry name** value
        "username": "${ACR_USER}",
        "password": "${ACR_PASSWORD}",
        "address": "${ACR_ADDRESS}"
      }
    }
    

    Konfigurace proměnných pro kanál verze na kartě proměnné

  10. Vyberte druhou úlohu Azure IoT Edge a nakonfigurujte ji s následujícími hodnotami:

    Parametr Popis
    Zobrazované jméno Zobrazovaný název se automaticky aktualizuje při změně pole akce.
    Akce Vyberte Deploy to IoT Edge devices.
    Soubor nasazení Vložte cestu $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json . Tato cesta je soubor manifestu nasazení IoT Edge souboru.
    Předplatné Azure Vyberte předplatné, které obsahuje vaše IoT Hub.
    Název IoT Hub Vyberte centrum IoT.
    Vybrat jedno nebo více zařízení Vyberte, zda chcete, aby byl kanál verze nasazen do jednoho nebo více zařízení. Pokud nasadíte do jednoho zařízení, zadejte ID zařízení IoT Edge. Pokud nasazujete na více zařízení, zadejte podmínku cíle zařízení. Podmínka cíle je filtr, který odpovídá sadě IoT Edge zařízení v IoT Hub. Pokud chcete jako podmínku použít značky zařízení, je potřeba aktualizovat značky odpovídajících zařízení pomocí IoT Hub s dvojitou podmínkou zařízení. Aktualizujte ID nasazení IoT Edge a prioritu nasazení IoT Edge v rozšířených nastaveních. Další informace o vytváření nasazení pro více zařízení najdete v tématu principy IoT Edgeho automatického nasazení.
    ID zařízení nebo cílová podmínka V závislosti na předchozím výběru zadejte ID zařízení nebo cílovou podmínku pro nasazení do více zařízení.
    Pokročilý Pro ID nasazení IoT Edge zadejte $(System.TeamProject)-$(Release.EnvironmentName) . Tato proměnná mapuje název projektu a verze s vaším ID nasazení IoT Edge.

    Pokud úloha zahrnuje použití image, která se nachází v soukromém registru, který není viditelný pro veřejný cloud, můžete nastavit proměnnou prostředí SKIP_MODULE_IMAGE_VALIDATION na true pro přeskočení ověření obrázku.

    Přidání úloh Azure IoT Edge pro vaši fázi vývoje

  11. Vyberte Uložit a uložte změny do nového kanálu vydání. Vraťte se do Zobrazení kanálu výběrem karty kanálu z nabídky.

Ověření IoT Edge CI/CD pomocí kanálů sestavení a vydání

Chcete-li spustit úlohu sestavení, můžete buď Odeslat potvrzení do úložiště zdrojového kódu, nebo jej ručně aktivovat. V této části ručně aktivujete kanál CI/CD, abyste otestovali, že funguje. Pak ověřte, že nasazení proběhlo úspěšně.

  1. V nabídce v levém podokně vyberte kanály a otevřete kanál sestavení, který jste vytvořili na začátku tohoto článku.

  2. Můžete aktivovat úlohu sestavení v kanálu sestavení výběrem tlačítka Spustit kanál v pravém horním rohu.

    Ruční aktivace kanálu sestavení pomocí tlačítka spustit kanál

  3. Zkontrolujte nastavení kanálu spuštění . Pak vyberte Spustit.

    Zadejte možnosti kanálu spuštění a vyberte spustit.

  4. Vyberte úlohu agenta 1 a sledujte průběh běhu. Výběrem úlohy můžete zkontrolovat protokoly výstupu úlohy.

    Kontrola výstupu protokolu úlohy

  5. Pokud je kanál sestavení úspěšně dokončen, aktivuje vydání vývojové fáze. Úspěšná verze dev vytvoří nasazení IoT Edge pro cílení IoT Edge zařízení.

    Vydání pro vývoj

  6. Kliknutím na vývojové fáze zobrazíte protokoly verzí.

    Protokoly vydaných verzí

  7. Pokud se váš kanál nedaří, začněte tím, že prohlížíte protokoly. Protokoly můžete zobrazit tak, že přejdete na souhrn spuštění kanálu a vyberete úlohu a úlohu. Pokud dojde k selhání určité úlohy, Projděte si protokoly pro tuto úlohu. Podrobné pokyny pro konfiguraci a používání protokolů najdete v tématu Kontrola protokolů pro diagnostiku problémů s kanály.

Další kroky