Kontinuální integrace a průběžné nasazování do zařízení Azure IoT Edge
Platí pro: IoT Edge 1.4
S aplikacemi Azure IoT Edge můžete snadno osvojit DevOps pomocí integrovaných úloh Azure IoT Edge v Azure Pipelines. Tento článek ukazuje, jak můžete pomocí Azure Pipelines sestavovat, testovat a nasazovat moduly Azure IoT Edge pomocí YAML. Případně můžete použít klasický editor.
V tomto článku se dozvíte, jak pomocí integrovaných úloh Azure IoT Edge pro Azure Pipelines vytvářet kanály sestavení a verze pro IoT Edge řešení. Každá úloha Azure IoT Edge přidaná do kanálu implementuje jednu z následujících čtyř akcí:
Akce | Popis |
---|---|
Sestavení imagí modulů | Vezme kód řešení IoT Edge a sestaví image kontejneru. |
Nasdílení imagí modulů | Nasdílí image modulů do registru kontejneru, který jste zadali. |
Generování manifestu nasazení | Vezme soubor deployment.template.json a proměnné 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 neprobá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 v 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 potvrzené a nasdílené 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 editoru Visual Studio Code nebo Vývoj a ladění modulů jazyka C# v sadě Visual Studio. Pro účely tohoto článku jsme v našem úložišti vytvořili řešení 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 v sadě 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.
Znát cestu k souboru deployment.template.json ve vašem řešení, který se používá v několika krocích. Pokud roli šablony nasazení neznáte, podívejte se na informace o nasazení modulů a vytváření tras.
Tip
Pokud vytváříte nové řešení, nejprve místně naklonujte úložiště. Když pak vytvoříte řešení, můžete ho vytvořit přímo ve složce úložiště. Odsud můžete snadno potvrdit a odeslat nové soubory.
Registr kontejneru, ve kterém můžete odesílat image modulů. Můžete použít Azure Container Registry nebo registr třetí strany.
Aktivní centrum Azure IoT s nejméně dvěma IoT Edge zařízeními pro testování samostatných testovacích a produkčních fází nasazení. Pokud chcete vytvořit IoT Edge zařízení v Linuxu nebo Windows, můžete postupovat podle článků rychlého startu.
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 sestavení pro kontinuální integraci
V této části vytvoříte nový kanál sestavení. Kanál nakonfigurujete tak, aby se spouštěl automaticky, když se změnami v ukázkovém IoT Edge řešení a publikujete protokoly sestavení.
Přihlaste se ke své organizaci Azure DevOps (
https://dev.azure.com/{your organization}
) a otevřete projekt, který obsahuje úložiště řešení IoT Edge.V nabídce levého podokna v projektu vyberte Kanály. Uprostřed stránky vyberte Vytvořit kanál . Pokud už kanály sestavení máte, vyberte tlačítko Nový kanál v pravém horním rohu.
Na stránce Kde je váš kód? vyberte Azure Repos Git
YAML
. Pokud chcete k vytvoření kanálů sestavení projektu použít klasický editor, projděte si průvodce klasickým editorem.Vyberte úložiště, pro které vytváříte kanál.
Na stránce Konfigurace kanálu vyberte Úvodní kanál. Pokud už existuje 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.
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 .
Pokud chcete přidat úkol, umístěte kurzor na konec YAML nebo na místo, kam 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 Sestavit image modulů. Soubor .template.json 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 vaše moduly na základě cílového IoT Edge zařízení. Další informace o této úloze a jejích parametrech najdete v tématu Úloha azure IoT Edge.
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ů poskytněte nové místo pro další úkol.
Opakováním tohoto postupu přidejte další tři úlohy s následujícími parametry:
Úloha: Azure IoT Edge
Parametr Popis Akce Vyberte Nasdílení imagí modulů. 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 použít pro kanál. Soubor .template.json 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 vaše moduly na základě cílového IoT Edge zařízení. Další informace o této úloze a jejích parametrech najdete v tématu Úloha azure IoT Edge.
Úkol: Kopírování souborů
Parametr Popis Zdrojová složka Zdrojová složka, ze které chcete kopírovat. Prázdný je kořen úložiště. Pokud soubory nejsou v úložišti, použijte proměnné. 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 úloze a jejích parametrech najdete v tématu Úloha kopírování souborů.
Úloha: Publikování artefaktů sestavení
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 úloze a jejích parametrech najdete v tématu Publikování úlohy artefaktů sestavení.
V rozevíracím seznamu Uložit a spustit v pravém horním rohu vyberte Uložit.
Trigger pro průběžnou 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 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 políčko Přepsat trigger kontinuální integrace YAML odsud .
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 automaticky spustil, když kanál buildu zahodí artefakty, a zobrazí protokoly nasazení ve službě Azure Pipelines.
Vytvořte nový kanál a přidejte novou fázi:
Na kartě Releases (Vydané verze ) v části Pipelines (Kanály) zvolte + New pipeline (+ Nový kanál). Nebo pokud už máte kanály verzí, zvolte tlačítko + Nový a vyberte + Nový kanál verze.
Po zobrazení výzvy k výběru šablony zvolte, že chcete začít prázdnou úlohou.
Nový kanál verze se inicializuje v jedné fázi s názvem Fáze 1. Přejmenujte Fázi 1 na vývoj a považujte 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í, mezi které patří vývoj, příprava a prod. Můžete použít různé názvy a vytvářet další na základě vašich postupů v DevOps. Po přejmenování zavřete okno podrobností fáze.
Kanál verze můžete také přejmenovat tak, že v horní části vyberete text Nový kanál verze.
Propojte vydání s artefakty sestavení, které jsou publikovány kanálem buildu. Klikněte na Přidat v oblasti artefaktů.
Na stránce Přidat artefakt jako Typ zdroje vyberte Sestavení. 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.
Otevřete triggery artefaktů a výběrem přepínače povolte trigger průběžného nasazování. Nová verze se teď vytvoří pokaždé, když bude k dispozici nový build.
Fáze vývoje je předem nakonfigurovaná s jednou úlohou a žádnými úkoly. V nabídce kanálu vyberte Úlohy a pak zvolte fázi vývoje . Vyberte úlohu Agent a změňte její Zobrazovaný název na Qa (Kontrola kvality). Můžete nakonfigurovat podrobnosti o úloze agenta, ale úloha nasazení nerozlišuje platformu, takže můžete použít jakoukoli specifikaci agenta ve zvoleném fondu agentů.
V úloze kontroly kvality vyberte znaménko plus (+) a přidejte dva úkoly. Vyhledejte a přidejte Azure IoT Edge dvakrát.
Vyberte první úlohu Azure IoT Edge a nakonfigurujte pro ni následující hodnoty:
Parametr Popis Zobrazované jméno Zobrazovaný název se automaticky aktualizuje při změně pole Akce. Akce Vyberte Generate deployment manifest
.Soubor .template.json Zadejte cestu: $(System.DefaultWorkingDirectory)/Drop/drop/deployment.template.json
. Cesta se publikuje z kanálu buildu.Výchozí platforma Vyberte vhodný operační systém pro vaše moduly na základě vašeho cílového IoT Edge zařízení. 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 obrázků modulu v
deployment.template.json
souboru. Manifest Generovat nasazení také pomáhá nahradit proměnné přesnou hodnotou, kterou jste definovalideployment.template.json
v souboru. Ve VS/VS 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 následujícím postupem nakonfigurujte název a hodnotu:- ACR_ADDRESS: Hodnota přihlašovacího serveru Azure Container Registry. Přihlašovací server můžete načíst ze stránky Přehled registru kontejneru v Azure Portal.
- ACR_PASSWORD: Vaše Azure Container Registry heslo.
- ACR_USER: Vaše uživatelské jméno Azure Container Registry.
Pokud máte v projektu jiné proměnné, můžete zadat název a hodnotu na této kartě. Manifest Generovat nasazení dokáže rozpoznat pouze proměnné, které jsou ve
${VARIABLE}
variantě. Ujistěte se, že ve svých souborech používáte*.template.json
tento příchuť."registryCredentials": { "<ACR name>": { // Your Azure Container Registry **Registry name** value "username": "${ACR_USER}", "password": "${ACR_PASSWORD}", "address": "${ACR_ADDRESS}" } }
Vyberte druhou úlohu Azure IoT Edge a nakonfigurujte pro ni následující hodnoty:
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 souborem IoT Edge souboru manifestu nasazení.Předplatné Azure Vyberte předplatné, které obsahuje vaše IoT Hub. název IoT Hub Vyberte centrum IoT. Volba jednoho nebo více zařízení Zvolte, jestli chcete kanál verze nasadit do jednoho nebo několika zařízení. Pokud nasadíte do jednoho zařízení, zadejte ID IoT Edge zařízení. Pokud nasazujete do více zařízení, zadejte cílovou podmínku zařízení. Cílová podmínka je filtr, který odpovídá sadě IoT Edge zařízení v IoT Hub. Pokud chcete jako podmínku použít značky zařízení, musíte aktualizovat odpovídající značky zařízení IoT Hub dvojčete zařízení. V upřesňujícím nastavení aktualizujte ID nasazení IoT Edge a IoT Edge prioritu nasazení. Další informace o vytvoření nasazení pro více zařízení najdete v tématu Principy automatického 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 pro nasazení do více zařízení. Pokročilý Jako ID nasazení IoT Edge zadejte $(System.TeamProject)-$(Release.EnvironmentName)
. Tato proměnná mapuje název projektu a verze na 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 na hodnotu
true
a přeskočit ověřování image.Vyberte Uložit a uložte změny do nového kanálu verze. Vraťte se do zobrazení kanálu tak, že v nabídce vyberete kartu Kanál .
Ověření IoT Edge CI/CD 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 ho aktivovat ručně. V této části ručně aktivujete kanál CI/CD a otestujete, že funguje. Pak ověřte, že nasazení proběhlo úspěšně.
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.
Úlohu sestavení v kanálu buildu můžete aktivovat tak, že v pravém horním rohu vyberete tlačítko Spustit kanál .
Zkontrolujte nastavení spustit kanál . Pak vyberte Spustit.
Vyberte Úloha agenta 1 a sledujte průběh spuštění. Výběrem úlohy můžete zkontrolovat protokoly výstupu úlohy.
Pokud se kanál buildu úspěšně dokončí, aktivuje se fáze vydání do fáze vývoje . Úspěšná verze pro vývoj vytvoří IoT Edge nasazení pro cíl IoT Edge zařízení.
Kliknutím na Fáze vývoje zobrazíte protokoly verzí.
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 na souhrn spuštění kanálu a vyberete úlohu a úlohu. Pokud určitá úloha selhává, 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
- Vysvětlení IoT Edge nasazení najdete v tématu Principy nasazení IoT Edge pro jednotlivá zařízení nebo ve velkém měřítku.
- Projděte si postup vytvoření, aktualizace nebo odstranění nasazení v tématu Nasazení a monitorování IoT Edge modulů ve velkém.