Sdílet prostřednictvím


Kontinuální integrace a průběžné nasazování do zařízení Azure IoT Edge (klasický editor)

Platí pro:Značka zaškrtnutí IoT Edge 1.4 IoT Edge 1.4

Důležité

Podporované verze ioT Edge 1.5 LTS a IoT Edge 1.4. Pokud používáte starší verzi, přečtěte si téma Aktualizace IoT Edge.

Azure Pipelines zahrnuje integrovanou úlohu Azure IoT Edge, která vám pomůže s přechodem DevOps s aplikacemi Azure IoT Edge. Tento článek ukazuje, jak pomocí funkcí kontinuální integrace a průběžného nasazování služby Azure Pipelines rychle a efektivně nasazovat aplikace do Azure IoT Edge pomocí klasického editoru. Alternativně můžete použítYAML .

Diagram kontinuální integrace a větví průběžného vývoje pro vývoj a produkci

V tomto článku se dozvíte, jak používat integrované úlohy Azure IoT Edge pro Azure Pipelines k vytvoření sestavovacích a uvolňovacích kanálů pro vaše řešení IoT Edge. Každá úloha Azure IoT Edge přidaná do vašeho kanálu implementuje jednu z následujících čtyř akcí:

Činnost Popis
Vytváření imagí modulů Vezme kód řešení IoT Edge a sestaví image kontejneru.
Odeslat obrazy modulů Odesílá obrazy modulů do zadaného registru kontejneru.
Generování manifestu nasazení Vezme deployment.template.json soubor a proměnné a pak vygeneruje konečný soubor manifestu nasazení IoT Edge.
Nasazení do zařízení IoT Edge Vytvoří nasazení IoT Edge pro jedno nebo více zařízení IoT Edge.

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

Požadavky

  • Úložiště Azure Repos. Pokud ho nemáte, můžete ve svém projektu vytvořit nové úložiště Git. Pro účely tohoto článku jsme vytvořili úložiště s názvem IoTEdgeRepo.

  • Do úložiště bylo zapsáno a odesláno řešení IoT Edge. Pokud chcete vytvořit nové ukázkové řešení pro testování tohoto článku, postupujte podle kroků v části Vývoj modulů Azure IoT Edge pomocí editoru Visual Studio Code. V tomto článku jsme vytvořili řešení v našem úložišti s názvem IoTEdgeSolution, které obsahuje kód modulu s názvem filtermodule.

    V tomto článku potřebujete jenom složku řešení vytvořenou šablonami IoT Edge v editoru Visual Studio Code nebo Visual Studio. Před pokračováním nemusíte tento kód sestavovat, nasdílovat, nasazovat ani ladit. Tyto procesy nastavíte v Azure Pipelines.

    Zjistěte cestu k souboru deployment.template.json ve vašem řešení, který se používá v několika krocích. Pokud neznáte roli šablony nasazení, přečtěte si, jak nasazovat moduly a navazovat trasy.

    Návod

    Pokud vytváříte nové řešení, nejprve naklonujte úložiště místně. Když pak vytvoříte řešení, můžete ho vytvořit přímo ve složce úložiště. Nové soubory odtud můžete snadno potvrdit a odeslat.

  • Registr kontejneru, kde můžete odesílat image modulů. Službu Azure Container Registry nebo registr třetí strany můžete použít.

  • Aktivní centrum Azure IoT s alespoň dvěma zařízeními IoT Edge pro testování samostatných fází testovacího a produkčního nasazení. Podle článků rychlého startu můžete vytvořit zařízení IoT Edge v Linuxu nebo Windows.

Vytvořte potrubí pro kontinuální integraci.

V této části vytvoříte nový buildovací proces. Konfigurujete potrubí tak, aby se spouštělo automaticky a publikovalo protokoly sestavení pokaždé, když vrátíte změny do řešení IoT Edge.

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

    Snímek obrazovky znázorňující, jak otevřít projekt DevOps

  2. V nabídce levého podokna v projektu vyberte Potoky. Vyberte Vytvořit kanál uprostřed stránky. Pokud už kanály buildu máte, vyberte v pravém horním rohu tlačítko Nový kanál .

    Snímek obrazovky, který ukazuje, jak vytvořit nový kanál buildu

  3. Ve spodní části stránky Kde je váš kód? vyberte Použít klasický editor. Pokud chcete k vytvoření kanálů sestavení projektu použít YAML, přečtěte si průvodce YAML .

    Snímek obrazovky, který ukazuje, jak používat klasický editor

  4. Podle instrukcí vytvořte potrubí.

    1. Zadejte zdrojové informace pro novou linku sestavení. Jako zdroj vyberte Git Azure Repos a pak vyberte projekt, úložiště a větev, ve které se nachází váš kód řešení IoT Edge. Pak vyberte Pokračovat.

      Snímek obrazovky znázorňující, jak vybrat zdroj kanálu

    2. Místo šablony vyberte prázdnou úlohu .

      snímek obrazovky ukazující, jak začít s prázdnou úlohou procesu vytváření pipeline

  5. Po vytvoření kanálu přejdete do editoru kanálů. Zde můžete změnit název pipeline, fond agentů a specifikaci agenta.

    Můžete vybrat fond hostovaný Microsoftem nebo fond v místním prostředí, který spravujete.

    Ve vašem popisu pipeliny zvolte správnou specifikaci agenta na základě cílové platformy.

    Nakonfigurujte specifikaci agenta sestavení

  6. Vaše potrubí je předkonfigurované úlohou nazvanou Agent job 1. Vyberte znaménko plus (+) a přidejte do úlohy čtyři úkoly: Azure IoT Edge dvakrát, kopírovat soubory jednou a publikovat artefakty sestavení jednou. Vyhledejte každý úkol a najeďte myší na název úkolu a zobrazte tlačítko Přidat .

    Přidání úlohy Azure IoT Edge

    Po přidání všech čtyř úkolů bude vaše úloha agenta vypadat jako v následujícím příkladu:

    Čtyři úlohy v kanálu buildu

  7. Vyberte první úlohu Azure IoT Edge a upravte ji. Tato úloha sestaví všechny moduly v řešení s cílovou platformou, kterou zadáte. Upravte úkol s následujícími hodnotami:

    Parametr Popis
    Zobrazované jméno Zobrazovaný název se automaticky aktualizuje při změně pole akce.
    Činnost Vyberte Vytvořit obrazy modulů.
    soubor .template.json Vyberte výpustku (...) a přejděte k souboru deployment.template.json v úložišti, které obsahuje vaše řešení IoT Edge.
    Výchozí platforma Vyberte odpovídající operační systém pro moduly na základě cílového zařízení IoT Edge.
    Výstupní proměnné Zadejte název odkazu, který se přidruží k cestě k souboru, kde se generuje váš soubor deployment.json, například okraj.

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

    Tyto konfigurace používají úložiště imagí a značku definovanou v souboru module.json k pojmenování a označení image modulu. Sestavovací moduly také pomáhá nahradit proměnné přesnou hodnotou, kterou definujete v souboru module.json. Ve Visual Studio či Visual Studio Code zadáte skutečnou hodnotu do souboru .env. V Azure Pipelines nastavíte hodnotu na kartě Proměnné kanálu. V nabídce konfigurátoru kanálu vyberte kartu Proměnné a poté nastavte název a hodnotu následujícím způsobem:

    • ACR_ADDRESS: Hodnota přihlašovacího serveru služby Azure Container Registry. Hodnotu přihlašovacího serveru najdete na stránce přehledu registru kontejneru na webu Azure Portal.

    Pokud máte v projektu další proměnné, můžete na této kartě zadat jejich název a hodnotu. Sestavení obrazů modulu rozpoznává pouze proměnné ve formátu ${VARIABLE}. Ujistěte se, že používáte tento formát v souborech **/module.json.

  8. Vyberte druhou úlohu azure IoT Edge a upravte ji. Tato úloha odešle všechny image modulů do registru kontejneru, který vyberete.

    Parametr Popis
    Zobrazované jméno Zobrazovaný název se automaticky aktualizuje při změně pole akce.
    Činnost Vyberte obrázky modulu Push.
    Typ registru kontejneru Použijte výchozí typ: Azure Container Registry.
    Předplatné Azure Zvolte své předplatné.
    Azure Container Registry (registr kontejnerů Azure) Vyberte typ registru kontejneru, který používáte k ukládání imagí modulů. V závislosti na tom, jaký typ registru zvolíte, se formulář změní. Pokud zvolíte Azure Container Registry, pomocí rozevíracích seznamů vyberte předplatné Azure a název vašeho registru kontejneru. Pokud zvolíte Generic Container Registry, vyberte Nový a vytvořte připojení služby registru.
    soubor .template.json Vyberte výpustku (...) a přejděte k souboru deployment.template.json v úložišti, které obsahuje vaše řešení IoT Edge.
    Výchozí platforma Vyberte odpovídající operační systém pro moduly na základě cílového zařízení IoT Edge.
    Přidání přihlašovacích údajů registru do manifestu nasazení Zadejte true pro přidání údajů o přihlášení do registru pro pushování obrazů Dockeru do manifestu nasazení.

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

    Pokud máte více registrů kontejnerů pro hostování obrazů modulů, musíte tuto úlohu duplikovat, vybrat jiný registr kontejneru a v nastavení Advanced použít Vynechat moduly k obejití obrazů, které nejsou určeny pro tento konkrétní registr.

  9. Vyberte úlohu Kopírovat soubory a upravte ji. Tuto úlohu použijte ke kopírování souborů do přípravného adresáře artefaktů.

    Parametr Popis
    Zobrazované jméno Použijte výchozí název nebo jej přizpůsobte
    Zdrojová složka Složka se soubory, které se mají zkopírovat.
    Obsah Přidejte dva řádky: deployment.template.json a **/module.json. Tyto dva soubory slouží jako vstupy pro generování manifestu nasazení IoT Edge.
    Cílová složka Zadejte proměnnou $(Build.ArtifactStagingDirectory). Další informace o popisu najdete v tématu Sestavení proměnných .

    Další informace o této úloze a jejích parametrech naleznete v tématu Kopírování souborů úloha.

  10. Vyberte úkol Publish Build Artifacts k úpravě. Poskytněte úloze cestu k adresáři pro přípravu artefaktů, aby se mohla publikovat do publikačního kanálu verze.

    Parametr Popis
    Zobrazované jméno Použijte výchozí název nebo přizpůsobte.
    Cesta k publikování Zadejte proměnnou $(Build.ArtifactStagingDirectory). Další informace najdete v tématu Vytváření proměnných .
    Název artefaktu Použijte výchozí název: drop
    Umístění publikování artefaktů Použít výchozí umístění: Azure Pipelines

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

  11. Otevřete kartu Triggery a zaškrtněte políčko Povolitkontinuální integrace . Ujistěte se, že je zahrnutá větev obsahující váš kód.

Snímek obrazovky znázorňující, jak zapnout trigger kontinuální integrace

  1. Vyberte Uložit z rozevíracího seznamu fronta &.

Tento kanál je teď nakonfigurovaný tak, aby se spouštěl automaticky, když do úložiště odešlete nový kód. Poslední úloha, publikování artefaktů potrubí, aktivuje potrubí nasazení. Pokračujte na další část a sestavte vydávací kanál.

Vytvořte vydávací kanál pro průběžné nasazování

V této části vytvoříte vydávací kanál, který se nakonfiguruje tak, aby se spouštěl automaticky, když kanál sestavení vytvoří artefakty, a zobrazí se protokoly nasazení v Azure Pipelines.

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

  1. Na kartě Vydané verze v části Kanály zvolte + Nový kanál. Pokud už kanály vydání máte, zvolte tlačítko + Nový a vyberte + Nový kanál vydání.

    Přidat kanál 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ěte s prázdnou úlohou pro vydávací potrubí.

  3. Váš nový vydávací kanál je inicializován s jednou fází, která se nazývá Fáze 1. Přejmenujte fázi 1 na vývoj a zacházejte s ním jako s kanálem 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 testování. Můžete použít různé názvy a vytvořit více na základě vašeho postupu DevOps. Zavřete okno podrobností fáze po jeho přejmenování.

    Také můžete přejmenovat svůj vydávací kanál výběrem textu "Nový vydávací kanál" v horní části.

  4. Propojte verzi s artefakty sestavení, které jsou publikovány kanálem buildu. Klikněte na Přidat v oblasti artefaktů.

    Klikněte na Přidat v části Artefakty rozhraní.

  5. Na stránce Přidat artefakt vyberte Vytvořit jako Typ zdroje. Zvolte projekt a kanál buildu, který jste vytvořili. Pokud chcete, můžete změnit alias zdroje na něco popisnějšího. Pak vyberte Přidat.

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

  6. Otevřete triggery artefaktů a vyberte přepínač, abyste povolili trigger průběžného nasazování. Teď se vytvoří nová verze pokaždé, když bude k dispozici nový build.

    Otevřete triggery artefaktu a přepněte pro 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 procesu vyberte Úkoly a pak zvolte etapa dev. Vyberte úlohu agenta a změňte její zobrazovaný název na kontrolu kvality. Můžete nakonfigurovat podrobnosti o úloze agenta, ale úloha nasazení je nerozlišující platformu, takže můžete použít jakoukoli specifikaci agenta ve zvoleném fondu agentů.

    Zobrazení úkolů pro vývojovou fázi na kartě Úkoly

  8. V úloze pro kontrolu kvality vyberte znaménko plus (+) a přidejte dva úkoly. 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.
    Činnost Vyberte možnost Generate deployment manifest.
    soubor .template.json Zadejte cestu: $(System.DefaultWorkingDirectory)/Drop/drop/deployment.template.json. Cesta je publikována z build pipeline.
    Výchozí platforma Vyberte odpovídající operační systém pro moduly na základě cílového zařízení IoT Edge.
    Výstupní cesta Vložte cestu $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json. Tato cesta je posledním souborem manifestu nasazení IoT Edge.

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

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

    Pokud máte v projektu jiné proměnné, můžete zadat název a hodnotu v této kartě. Nasazovací manifest dokáže rozpoznat pouze proměnné, které jsou v ${VARIABLE} variantě. Ujistěte se, že ve svých *.template.json souborech používáte tuto příchuť.

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

    Konfigurujte proměnné pro uvolňovací kanál 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.
    Činnost Vyberte možnost 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.
    Předplatné Azure Vyberte předplatné, které obsahuje ioT Hub.
    Název ioT Hubu Vyberte centrum IoT.
    Volba jednoho nebo více zařízení Zvolte, zda chcete, aby nasazovací kanál nasadil na jedno nebo více zařízení. Pokud nasadíte na jedno zařízení, zadejte ID zařízení IoT Edge. Pokud nasazujete na více zařízení, zadejte cílovou podmínku zařízení. Cílová podmínka je filtr, který odpovídá sadě zařízení IoT Edge ve službě IoT Hub. Pokud chcete jako podmínku použít značky zařízení, musíte aktualizovat tyto odpovídající značky na zařízeních pomocí dvojčete zařízení IoT Hubu. Aktualizujte ID nasazení IoT Edge a prioritu nasazení IoT Edge v upřesňujícím nastavení. Další informace o vytvoření nasazení pro více zařízení najdete v tématu Vysvětlení automatických nasazení IoT Edge.
    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 , která se má nasadit do více zařízení.
    Pokročilý Pro ID nasazení IoT Edge zadejte $(System.TeamProject)-$(Release.EnvironmentName). Tato proměnná přiřazuje název projektu a vydání k ID nasazení IoT Edge.

    Pokud váš úkol zahrnuje použití image, která se nachází v privátním důvěryhodném registru Dockeru, který není viditelný pro veřejný cloud, můžete nastavit proměnnou prostředí SKIP_MODULE_IMAGE_VALIDATION tak, aby true přeskočí ověření image.

    Přidání úloh Azure IoT Edge pro vývojovou fázi

  11. Pro uloženie změn v nové releasové pipeline vyberte Uložit. Vraťte se do zobrazení kanálu tak, že v nabídce vyberete kartu Kanál .

Poznámka:

V úlohách Azure IoT Edge v Azure DevOps se zatím nepodporují vrstvené nasazení.

K vytvoření nasazení jako vrstveného nasazení ale můžete použít úlohu Azure CLI v Azure DevOps. Pro hodnotu Inline Script můžete použít příkaz az iot edge deployment create:

az iot edge deployment create -d {deployment_name} -n {hub_name} --content modules_content.json --layered true

Ověřte CI/CD IoT Edge pomocí kanálů pro build a release.

Pokud chcete aktivovat úlohu sestavení, můžete buď odeslat potvrzení do úložiště zdrojového kódu, nebo ji aktivovat ručně. V této části ručně aktivujete kanál CI/CD a otestujete, že funguje. Pak ověřte, že nasazení proběhne úspěšně.

  1. V nabídce levého podokna vyberte Pipelines a otevřete build pipeline, který jste vytvořili na začátku tohoto článku.

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

    Ruční aktivace kanálu buildu 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 se buildovací kanál úspěšně dokončí, spustí se vydání do fáze vývoje. Úspěšná vývojová verze vytvoří nasazení IoT Edge na cílová zařízení IoT Edge.

    Uvolnit pro vývojáře

  6. Klikněte na dev stage a zobrazí se protokoly o vydání.

    Protokoly vydání

  7. Pokud váš pipeline selhává, začněte tím, že se podíváte na logy. Protokoly můžete zobrazit tak, že přejdete do souhrnu spuštění kanálu a vyberete úlohu a úkol. Pokud se určitá úloha nedaří, zkontrolujte protokoly pro danou úlohu. Podrobné pokyny ke konfiguraci a používání protokolů najdete v tématu Kontrola protokolů pro diagnostiku problémů s kanály.

Další kroky