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

Platí pro: Značka zaškrtnutí IoT Edge 1.5 IoT Edge 1.5 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 LTS. IoT Edge 1.4 LTS je konec životnosti 12. listopadu 2024. Pokud používáte starší verzi, podívejte se na článek Aktualizace IoT Edge.

DevOps můžete snadno přijmout s aplikacemi Azure IoT Edge pomocí integrovaných úloh Azure IoT Edge v Azure Pipelines. Tento článek ukazuje, jak pomocí Azure Pipelines vytvářet, testovat a nasazovat moduly Azure IoT Edge pomocí YAML. Případně můžete použít klasický editor.

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 pomocí integrovaných úloh Azure IoT Edge pro Azure Pipelines vytvořit kanály sestavení a verze 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í:

Akce Popis
Vytváření imagí modulů Vezme kód řešení IoT Edge a sestaví image kontejneru.
Nabízení imagí modulů Nasdílí image 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 na 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 naleznete v následujících zdrojích:

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.

  • Řešení IoT Edge se potvrdilo a odeslalo do úložiště. 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.

    Tip

    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.

Další informace o používání Azure Repos najdete v tématu Sdílení kódu se sadou Visual Studio a Azure Repos.

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

V této části vytvoříte nový kanál buildu. Kanál nakonfigurujete tak, aby se spouštěl automaticky, když se přihlásíte ke změnám ukázkového řešení IoT Edge a publikujete protokoly sestavení.

  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 Kanály. 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 znázorňující, jak vytvořit nový kanál buildu pomocí tlačítka Nový kanál

  3. Na stránce Kde je váš kód? vyberte Git YAMLAzure Repos . Pokud chcete k vytvoření kanálů buildu projektu použít klasický editor, prohlédněte si průvodce klasickým editorem.

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

    Snímek obrazovky znázorňující, jak vybrat úložiště pro kanál buildu

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

    Výběrem úvodního kanálu nebo existujícího souboru YAML služby Azure Pipelines zahajte kanál buildu.

  6. Na stránce Kontrola kanálu YAML můžete vybrat výchozí název azure-pipelines.yml a přejmenovat konfigurační soubor kanálu.

    Výběrem možnosti Zobrazit asistenta otevřete paletu Úkoly .

    Snímek obrazovky znázorňující, jak vybrat Zobrazit asistenta a otevřít paletu Úkoly

  7. Pokud chcete přidat úkol, umístěte kurzor na konec YAML nebo na místo, kde chcete přidat pokyny pro úkol. Vyhledejte a vyberte Azure IoT Edge. Parametry úkolu vyplňte následujícím způsobem. Pak vyberte Přidat.

    Parametr Popis
    Akce Vyberte Sestavení imagí modulů.
    .template.json soubor Zadejte cestu 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.

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

    Snímek obrazovky s paletou Použít úkoly a přidáním úkolů do kanálu

    Tip

    Po přidání každého úkolu editor automaticky zvýrazní přidané řádky. Pokud chcete 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ý prostor pro další úkol.

  8. Opakováním tohoto procesu přidejte tři další úlohy s následujícími parametry:

    • Úloha: Azure IoT Edge

      Parametr Popis
      Akce Vyberte obrázky modulu Push.
      Typ registru kontejneru Použijte výchozí typ: Azure Container Registry.
      Předplatné Azure Vyberte své předplatné.
      Azure Container Registry Zvolte registr, který chcete pro kanál použít.
      .template.json soubor Zadejte cestu 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.

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

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

      Parametr Popis
      Zdrojová složka Zdrojová složka, ze které se má kopírovat. Prázdný je kořen úložiště. Proměnné použijte, pokud soubory nejsou v úložišti. Příklad: $(agent.builddirectory).
      Obsah Přidejte dva řádky: deployment.template.json a **/module.json.
      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.

    • Úloha: Publikování artefaktů sestavení

      Parametr Popis
      Cesta k publikování Zadejte proměnnou $(Build.ArtifactStagingDirectory). Další 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 úloze a jejích parametrech najdete v tématu Publikování úlohy artefaktů sestavení.

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

  10. Trigger pro kontinuální integraci je ve výchozím nastavení povolený pro váš kanál YAML. Pokud chcete tato nastavení upravit, vyberte kanál a v pravém horním rohu vyberte 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 kanálu zobrazuje jako povolená. Pokud chcete zobrazit podrobnosti o triggeru, zaškrtněte políčko Přepsat trigger kontinuální integrace YAML odsud .

Snímek obrazovky znázorňující, jak zkontrolovat nastavení triggeru kanálu v nabídce Aktivační události v části Další akce

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

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

V této části vytvoříte kanál verze, který je nakonfigurovaný tak, aby se spouštěl automaticky, když kanál buildu zahodí artefakty, a zobrazí 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 verze máte, zvolte tlačítko + Nový a vyberte + Nový kanál verze.

    Přidání kanálu verze 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 kanál verze.

  3. Váš nový kanál verze inicializuje jednu fázi s názvem 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. Po přejmenování okna podrobností fáze zavřete.

    Kanál verze můžete také přejmenovat výběrem textu "Nový kanál verze" v horní části.

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

    Klikněte na přidat v oblasti artefaktů rozhraní.

  5. Na stránce Přidat artefakt vyberte Vytvořit jako typ Zdroj. 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 výběrem přepínače povolte trigger průběžného nasazování. Teď se vytvoří nová verze pokaždé, když bude k dispozici nový build.

    Otevření triggerů artefaktů a přepnutí 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 kanálu vyberte Úkoly a pak zvolte fázi vývoje . 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ý název Zobrazovaný název se automaticky aktualizuje při změně pole akce.
    Akce Vyberte možnost Generate deployment manifest.
    .template.json soubor Zadejte cestu: $(System.DefaultWorkingDirectory)/Drop/drop/deployment.template.json. Cesta se publikuje z kanálu buildu.
    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 verze. 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 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 na této kartě. Manifest pro generování nasazení dokáže rozpoznat pouze proměnné, které jsou v ${VARIABLE} příchuti. 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}"
      }
    }
    

    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ý název Zobrazovaný název se automaticky aktualizuje při změně pole akce.
    Akce 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 centra IoT Hub Vyberte centrum IoT.
    Volba jednoho nebo více zařízení Zvolte, jestli chcete, aby se kanál verze nasadil do jednoho nebo několika 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 odpovídající značky zařízení 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í.
    Rozšířený Pro ID nasazení IoT Edge zadejte $(System.TeamProject)-$(Release.EnvironmentName). Tato proměnná mapuje název projektu a verze s 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. Výběrem možnosti Uložit uložte změny v novém kanálu verze. Vraťte se do zobrazení kanálu tak , že v nabídce vyberete kartu Kanál .

Ověření CI/CD ioT Edge s využitím kanálů buildu a verze

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 Kanály a otevřete kanál buildu, který jste vytvořili na začátku tohoto článku.

  2. Úlohu sestavení v kanálu buildu můžete aktivovat výběrem tlačítka Spustit 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 spuštění. Výběrem úlohy můžete zkontrolovat protokoly výstupu úlohy.

    Kontrola výstupu protokolu úlohy

  5. Pokud se kanál buildu úspěšně dokončí, aktivuje vydání fáze vývoje . Úspěšná verze pro vývoj vytvoří nasazení IoT Edge pro cíl na zařízení IoT Edge.

    Vydání pro vývoj

  6. Výběrem vývojové fáze zobrazíte protokoly vydaných verzí.

    Protokoly vydaných verzí

  7. Pokud váš kanál selhává, začněte tím, že se podíváte na protokoly. Protokoly můžete zobrazit tak, že přejdete do souhrnu spuštění kanálu a vyberete úlohu a úlohu. 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