Cvičení – publikování modulu do registru
Ve vaší společnosti toy jste publikovali moduly Bicep do registru. Proces publikování jste spustili ručně z vlastního počítače. Teď chcete vytvořit kanál pro zpracování procesu publikování.
V tomto cvičení:
- Vytvořte registr kontejneru pro moduly Bicep.
- Přidejte do kanálu fázi lint.
- Přidejte fázi kanálu pro publikování modulu do registru.
- Ověřte, že se kanál úspěšně spustí.
- Zkontrolujte publikovaný modul v registru.
Vytvoření registru kontejneru
Než budete moct publikovat moduly, musíte vytvořit registr, který bude vaše organizace používat. Tady pomocí webu Azure Portal vytvoříte registr.
V prohlížeči vytvořte nový registr kontejneru na webu Azure Portal.
Na kartě Základy vyberte cílové předplatné a skupinu prostředků ToyReusable, kterou jste vytvořili dříve.
Zadejte název registru a umístění, které je blízko vás.
Důležité
Název registru musí být jedinečný v rámci Azure a musí obsahovat 5 až 50 alfanumerických znaků. Značka zaškrtnutí vedle názvu registru označuje, že je název, který jste zvolili, k dispozici.
V případě skladové položky vyberte Basic.
U ostatních nastavení konfigurace ponechte výchozí hodnoty.
Vyberte Zkontrolovat a vytvořit.
Zkontrolujte, že nastavení bylo úspěšně ověřeno , a pak vyberte Vytvořit.
Počkejte, než se nasazení dokončí, což obvykle trvá 1 až 2 minuty.
Jakmile se zobrazí zpráva o úspěšném nasazení, výběrem možnosti Přejít k prostředku otevřete registr kontejneru.
V oblasti Přehled registru kontejneru si poznamenejte hodnotu nastavení přihlašovacího serveru. Bude to něco jako yourregistryname.azurecr.io.
Tuto hodnotu budete potřebovat za chvíli.
Přidání souboru metadat modulu
V předchozí lekci jste se dozvěděli o důležitosti strategie správy verzí pro moduly. Dozvěděli jste se také, jak pomocí souborů metadat modulů určit hlavní a podverzi vašeho modulu v rámci kanálu. Tady přidáte soubor metadat pro modul účtu úložiště.
V editoru Visual Studio Code rozbalte složku modules/storage-account v kořenovém adresáři úložiště.
Vytvořte nový soubor s názvem metadata.json.
Do souboru přidejte následující obsah:
{ "version": { "major": 1, "minor": 2 } }
Všimněte si, že v souboru metadat samostatně definujete čísla hlavních a podverzí. Kanál kombinuje tato čísla spolu s číslem buildu kanálu do úplného čísla verze při každém spuštění kanálu.
Uložte změny souboru.
Aktualizace definice kanálu a přidání fáze lint
Úložiště obsahuje koncept kanálu, který můžete použít jako výchozí bod.
Otevřete soubor pipeline.yml ve složce modules/storage-account.
Aktualizujte hodnotu
ModuleRegistryServer
proměnné prostředí na název serveru registru kontejneru. Tento název jste zkopírovali dříve v tomto cvičení.Pokud je například přihlašovací server vašeho registru yourregistryname.azurecr.io, bude vypadat takto:
- name: ModuleRegistryServer value: yourregistryname.azurecr.io
V dolní části souboru
# To be added
pro komentář s následující definicí fáze lint:stages: - stage: Lint jobs: - job: LintCode displayName: Lint code steps: - script: | az bicep build --file $(ModuleFilePath) name: LintBicepCode displayName: Run Bicep linter
Přidání fáze publikování do kanálu
Teď můžete přidat druhou fázi pro publikování modulu do registru kontejneru.
V dolní části souboru pipeline.yml definujte fázi publikování a přidejte krok ke čtení čísla verze ze souboru metadata.json modulu a nastavte ho jako proměnnou kanálu.
- stage: Publish jobs: - job: Publish steps: - script: | majorMinorVersionNumber=$(jq '(.version.major | tostring) + "." + (.version.minor | tostring)' $(ModuleMetadataFilePath) -r ) versionNumber="$majorMinorVersionNumber.$(Build.BuildNumber)" echo "##vso[task.setvariable variable=ModuleVersion;]$versionNumber" name: GetModuleVersionNumber displayName: Get module version number
Tento krok spustí skript, který k parsování souboru JSON používá aplikaci příkazového řádku jq.
Pod krokem, který jste vytvořili, přidejte krok pro publikování modulu do registru.
- task: AzureCLI@2 name: Publish displayName: Publish module inputs: azureSubscription: $(ServiceConnectionName) scriptType: 'bash' scriptLocation: 'inlineScript' inlineScript: | az bicep publish \ --target 'br:$(ModuleRegistryServer)/$(ModuleName):$(ModuleVersion)' \ --file $(ModuleFilePath)
Všimněte si, že tento krok vytváří hodnotu
--target
argumentu dynamicky. Kombinuje hodnotu serveru registru, název modulu a číslo verze.Uložte změny souboru.
Ověření a potvrzení definice kanálu
Ověřte, že váš soubor storage_account_module.yml vypadá jako v následujícím příkladu:
trigger: batch: true branches: include: - main paths: include: - 'modules/storage-account/**' variables: - name: ServiceConnectionName value: ToyReusable - name: ModuleName value: storage-account - name: ModuleRegistryServer value: yourregistryname.azurecr.io - name: ModuleFilePath value: modules/storage-account/main.bicep - name: ModuleMetadataFilePath value: modules/storage-account/metadata.json pool: vmImage: ubuntu-latest stages: - stage: Lint jobs: - job: LintCode displayName: Lint code steps: - script: | az bicep build --file $(ModuleFilePath) name: LintBicepCode displayName: Run Bicep linter - stage: Publish jobs: - job: Publish steps: - script: | majorMinorVersionNumber=$(jq '(.version.major | tostring) + "." + (.version.minor | tostring)' $(ModuleMetadataFilePath) -r ) versionNumber="$majorMinorVersionNumber.$(Build.BuildNumber)" echo "##vso[task.setvariable variable=ModuleVersion;]$versionNumber" name: GetModuleVersionNumber displayName: Get module version number - task: AzureCLI@2 name: Publish displayName: Publish module inputs: azureSubscription: $(ServiceConnectionName) scriptType: 'bash' scriptLocation: 'inlineScript' inlineScript: | az bicep publish \ --target 'br:$(ModuleRegistryServer)/$(ModuleName):$(ModuleVersion)' \ --file $(ModuleFilePath)
Pokud tomu tak není, aktualizujte ho tak, aby odpovídal tomuto příkladu, a pak ho uložte.
Potvrďte a nasdílejte změny do úložiště Git spuštěním následujících příkazů v terminálu editoru Visual Studio Code:
git add . git commit -m "Add lint and publish stages to storage account module pipeline" git push
Hned po nasdílení změn azure Pipelines spustí nové spuštění kanálu.
Monitorování kanálu
V prohlížeči vyberte Pipelines Pipelines>.
Vyberte aktivní spuštění kanálu.
Zobrazí se spuštění kanálu.
Počkejte na dokončení spuštění kanálu. Modul Bicep se publikuje do vašeho registru kontejneru.
Poznamenejte si číslo buildu kanálu, které zahrnuje dnešní datum a jedinečné číslo revize.
Kontrola modulu v registru
Publikovaný modul můžete zobrazit také na webu Azure Portal.
V prohlížeči přejděte na web Azure Portal.
Přejděte do skupiny prostředků ToyReusable .
Vyberte registr kontejneru, který jste vytvořili dříve.
V nabídce vyberte podokno Úložiště. Pak vyberte úložiště modules\storage-account , které představuje modul, který váš kanál publikoval.
Všimněte si, že existuje jedna značka, která odpovídá číslu verze modulu, který váš kanál publikoval. Hlavní verze (1) a podverze (2) odpovídají číslu verzí, která jste definovali v souboru metadata.json . Číslo revize (20230407.3) odpovídá číslu buildu kanálu.
Vyčištění prostředků
Teď, když jste cvičení dokončili, můžete odebrat prostředky, abyste za ně neúčtoli.
V terminálu editoru Visual Studio Code spusťte následující příkaz:
az group delete --resource-group ToyReusable --yes --no-wait
Skupina prostředků se odstraní na pozadí.
Remove-AzResourceGroup -Name ToyReusable -Force
Můžete také odebrat připojení služby a projekt Azure DevOps.
Připojení služby
- V projektu Azure DevOps vyberte připojení služby Nastavení projektu>.
- Vyberte ToyReusable.
- V pravém horním rohu vyberte tři tečky pro další akce.
- Vyberte Odstranit a potvrďte odstranění.
registrace Aplikace Azure
- Na domovské stránce portálu vyhledejte ID Microsoft Entra a vyberte ho ze seznamu služeb.
- Přejděte na Spravovat> Registrace aplikací.
- V odstraněných aplikacích vyberte toy-reusable.
- Vyberte Trvale odstranit a postupujte podle pokynů.
Projekt Azure DevOps
- V projektu Azure DevOps vyberte Přehled nastavení>projektu.
- V okně Odstranit projekt vyberte Odstranit.
- Zadejte název projektu a potvrďte odstranění.