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 pracovní postup pro zpracování procesu publikování.
V tomto cvičení:
- Vytvořte registr kontejneru pro moduly Bicep.
- Přidejte do pracovního postupu úlohu lint.
- Přidejte úlohu pracovního postupu pro publikování modulu do registru.
- Ověřte, že se pracovní postup ú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ě cenového plánu vyberte Basic.
U ostatních nastavení konfigurace ponechte výchozí hodnoty.
Vyberte Zkontrolovat a vytvořit.
Jakmile se zobrazí zpráva o úspěšném ověření, 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. Název se podobá
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. Také jste zjistili, jak pomocí souborů metadat modulu určit hlavní a podverzi vašeho modulu v rámci pracovního postupu. 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 souboru metadat můžete samostatně definovat čísla hlavních a podverzí. Při každém spuštění pracovního postupu tento pracovní postup sloučí tato čísla spolu s číslem spuštění pracovního postupu a vytvoří celé číslo verze.
Uložte změny souboru.
Aktualizace definice pracovního postupu a přidání úlohy lint
Úložiště obsahuje koncept pracovního postupu, který můžete použít jako výchozí bod.
V editoru Visual Studio Code rozbalte složku .github/workflows v kořenovém adresáři úložiště.
Otevřete soubor module-storage-account.yml.
Aktualizujte hodnotu
MODULE_REGISTRY_SERVER
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, váš kód je podobný tomuto příkladu:
env: MODULE_NAME: storage-account MODULE_REGISTRY_SERVER: yourregistryname.azurecr.io MODULE_FILE_PATH: modules/storage-account/main.bicep MODULE_METADATA_FILE_PATH: modules/storage-account/metadata.json
V dolní části souboru pro
# To be added
komentář přidejte následující definici úlohy lint:jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Run Bicep linter run: az bicep build --file ${{ env.MODULE_FILE_PATH }}
Přidání úlohy publikování do pracovního postupu
Teď můžete přidat druhou úlohu pro publikování modulu do registru kontejneru.
V dolní části souboru module-storage-account.yml přidejte první část definice úlohy publikování.
publish: runs-on: ubuntu-latest needs: [ lint ] steps: - uses: actions/checkout@v3 - uses: azure/login@v1 name: Sign in to Azure with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
Počátečními dvěma kroky v této definici je rezervovat kód z úložiště a přihlásit se k Azure.
Pod kód, který jste právě přidali, přidejte další krok, který přečte číslo verze ze souboru metadata.json modulu a nastaví ho jako proměnnou prostředí.
- name: Get module version number run: | majorMinorVersionNumber=$(jq '(.version.major | tostring) + "." + (.version.minor | tostring)' ${{ env.MODULE_METADATA_FILE_PATH }} -r ) versionNumber="$majorMinorVersionNumber.${{ github.run_number }}" echo "MODULE_VERSION=$versionNumber" >> $GITHUB_ENV
Tento krok spustí skript, který k analýze souboru JSON používá aplikaci příkazového
jq
řádku.Po vytvoření kroku přidejte poslední krok pro publikování modulu do registru.
- uses: azure/cli@v1 name: Publish module with: inlineScript: | az bicep publish \ --target 'br:${{ env.MODULE_REGISTRY_SERVER }}/${{ env.MODULE_NAME }}:${{ env.MODULE_VERSION }}' \ --file ${{ env.MODULE_FILE_PATH }}
Tento krok vytvoří hodnotu argumentu
--target
dynamicky. Kombinuje hodnotu serveru registru, název modulu a číslo verze.Uložte změny souboru.
Ověření a potvrzení definice pracovního postupu
Ověřte, že váš soubor module-storage-account.yml vypadá jako v následujícím příkladu:
name: module-storage-account concurrency: module-storage-account on: workflow_dispatch: push: branches: - main paths: - 'modules/storage-account/**' permissions: id-token: write contents: read env: MODULE_NAME: storage-account MODULE_REGISTRY_SERVER: yourregistryname.azurecr.io MODULE_FILE_PATH: modules/storage-account/main.bicep MODULE_METADATA_FILE_PATH: modules/storage-account/metadata.json jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Run Bicep linter run: az bicep build --file ${{ env.MODULE_FILE_PATH }} publish: runs-on: ubuntu-latest needs: [ lint ] steps: - uses: actions/checkout@v3 - uses: azure/login@v1 name: Sign in to Azure with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - name: Get module version number run: | majorMinorVersionNumber=$(jq '(.version.major | tostring) + "." + (.version.minor | tostring)' ${{ env.MODULE_METADATA_FILE_PATH }} -r ) versionNumber="$majorMinorVersionNumber.${{ github.run_number }}" echo "MODULE_VERSION=$versionNumber" >> $GITHUB_ENV - uses: azure/cli@v1 name: Publish module with: inlineScript: | az bicep publish \ --target 'br:${{ env.MODULE_REGISTRY_SERVER }}/${{ env.MODULE_NAME }}:${{ env.MODULE_VERSION }}' \ --file ${{ env.MODULE_FILE_PATH }}
Pokud se obsah souboru liší, aktualizujte ho tak, aby odpovídal tomuto příkladu, a pak soubor 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 jobs to storage account module workflow" git push
Aktivace pracovního postupu
V prohlížeči přejděte do úložiště GitHub a vyberte kartu Akce .
Vyberte pracovní postup modulu-storage-account.
Všimněte si, že již probíhá spuštění pracovního postupu. Trigger nabízených oznámení se aktivoval, protože jste upravili soubor metadata.json ve složce modulu.
V seznamu vyberte nejnovější spuštění.
Počkejte, až se pracovní postup dokončí. Modul Bicep se publikuje do vašeho registru kontejneru.
Poznamenejte si číslo spuštění pracovního postupu, které je pravděpodobně 3.
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 .
V části Prostředky vyberte registr kontejneru, který jste vytvořili dříve.
V nabídce vyberte Úložiště služeb>. Pak vyberte úložiště modules\storage-account , které představuje modul, který váš pracovní postup publikoval.
Všimněte si, že existuje jedna značka, která odpovídá číslu verze modulu, který váš pracovní postup publikoval. Hlavní verze (1) a podverze (2) odpovídají číslu verzí, která jste definovali v souboru metadata.json . Číslo revize (3) odpovídá číslu spuštění pracovního postupu.
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 tajné kódy a úložiště GitHubu a identity úloh Azure.
Tajné kódy GitHubu
- V úložišti GitHub přejděte do části Nastavení>Tajný kód a akce proměnných>.
- U každého uloženého tajného kódu GitHubu vyberte ikonu Odstranit <název> tajného kódu a postupujte podle pokynů.
Úložiště GitHub
- Přejděte na Obecné nastavení>.
- Vyberte Odstranit toto úložiště a postupujte podle pokynů.
Aplikace Azure federovaných přihlašovacích údajů a instančního objektu registrace.
- Na domovské stránce portálu vyhledejte ID Microsoft Entra a vyberte ho ze seznamu služeb.
- Přejděte na Spravovat> Registrace aplikací.
- Na kartě Vlastněné aplikace vyberte opakovaně použitelné toy.
- Vyberte Odstranit a postupujte podle pokynů.
- Vyberte kartu Odstraněné aplikace.
- Vyberte toy-reusable, vyberte Odstranit trvale a pak vyberte Ano , pokud chcete trvale odstranit registraci aplikace.
Důležité
Je možné mít duplicitní názvy registrace aplikací a instančních objektů. Doporučujeme ověřit ID aplikace, abyste měli jistotu, že odstraňujete správný prostředek.