Publikování kódu Bicep z pracovního postupu nasazení

Dokončeno

Když automatizujete proces publikování pro specifikaci šablony nebo modul Bicep, musíte zajistit, aby vše, co byste normálně dělali sami, bylo možné automatizovat a spouštět v rámci pracovního postupu. V této lekci se dozvíte, jak použít některé z principů, které jste se dříve naučili při publikování specifikací šablon a modulů Bicep z pracovního postupu nasazení.

Specifikace šablon a moduly

Bicep umožňuje snadno opakovaně používat kód. Existují dva běžné přístupy k opětovnému nasazení kódu Bicep:

  • Specifikace šablon, které jsou optimalizované pro nasazení kompletních řešení. Předpokládejme například, že jste definovali sadu prostředků posílených zabezpečením pro nasazení kompletního virtuálního počítače podle specifikací vaší společnosti. Tento kód můžete publikovat jako specifikaci šablony. Vaši kolegové pak můžou pomocí specifikace šablony nasadit kompletní virtuální počítač, a to i z webu Azure Portal.
  • Moduly, které jsou navržené tak, aby byly součástí jiných nasazení. Předpokládejme například, že jste vytvořili soubor Bicep, který vytvoří účet úložiště. Pravděpodobně budete potřebovat účty úložiště v mnoha dalších nasazeních, takže byste mohli soubor Bicep publikovat do registru a používat ho jako modul v rámci nasazení vaší organizace.

Když se rozhodujete mezi specifikacemi šablon a moduly Bicep, je dobrým pravidlem: pokud se šablona nasadí tak, jak je v celé organizaci, jsou specifikace šablon pravděpodobně vhodné. Pokud ale budete pravděpodobně tuto šablonu opakovaně používat v rámci více nadřazených šablon, můžou moduly Bicep lépe sloužit vašim potřebám.

Ověření opakovaně použitelného kódu v pracovním postupu

Na rozdíl od běžných nasazení Bicep se při vytváření specifikace šablony nebo modulu prostředky nenasazují přímo do Azure. Místo toho publikujete specifikaci šablony nebo modul. Pak můžete použít specifikaci šablony nebo modul v jiném nasazení. Toto nasazení nasadí vámi definované prostředky. Vzhledem k tomuto rozdílu se způsoby ověření a testování specifikací šablon a modulů Bicep můžou lišit od procesu, který používáte pro běžná nasazení Bicep.

Linting your Bicep code is good practice. Linter detekuje syntaktické problémy a upozorní vás, pokud nedosáhnete doporučených postupů.

Kromě lintování můžete zvážit testování specifikací šablon a modulů pomocí předběžného ověření. Můžete dokonce zvážit nasazení specifikací šablon a modulů do Azure a otestování, že se prostředky, které vytvářejí, chovají podle očekávání. Spuštění těchto typů testů z pracovního postupu nasazení ale může být náročné ze dvou důvodů:

  • Předběžné ověření a nasazení vyžadují prostředí Azure k nasazení prostředků. Možná budete muset udržovat vyhrazené předplatné Azure nebo skupinu prostředků, které můžete použít k nasazení a testování modulů.
  • Mnoho specifikací šablon a modulů vyžaduje zadání sady parametrů. Možná budete muset vytvořit testovací sadu parametrů pro specifikace šablony nebo moduly, které se mají použít při jejich nasazení.

Měli byste zvolit, jestli chcete zahrnout kroky pracovního postupu, které nasazují a testují specifikace a moduly šablon. V tomto výukovém modulu Microsoft Learn kód Bicep lintujeme, ale nezahrnujeme jiné formy testování. Pokud chcete otestovat specifikace a moduly šablony, zvažte, jak je nasadíte do Azure. Zvažte také, jestli k nasazení prostředků použijete vyhrazená předplatná nebo skupiny prostředků.

Tip

Doporučujeme zkontrolovat kód Bicep pomocí GitHub Actions , kde najdete další informace o tom, jak otestovat soubory Bicep v automatizovaném pracovním postupu.

Ověřování a autorizace

Když publikujete specifikace šablon do Azure sami, musí mít váš uživatel Microsoft Entra udělený přístup ke skupině prostředků, která obsahuje prostředek specifikace šablony. Podobně když publikujete modul Bicep do registru, musí mít uživatel Microsoft Entra oprávnění k zápisu do instance služby Azure Container Registry, kterou vaše organizace používá pro své moduly Bicep.

Při práci s pracovním postupem automatizovaného nasazení platí stejné principy. Vzhledem k tomu, že nejste osoba, která spouští nasazení, musíte zajistit, aby identita pracovního postupu byla udělena odpovídajícímu přístupu ke skupině prostředků pro publikování specifikace šablony nebo do registru kontejneru pro moduly publikování.

Tip

Když publikujete modul do registru, identita úlohy, na které se nasazení spouští, pravděpodobně nepotřebuje velké množství oprávnění. Pokud váš registr používá autorizaci Microsoft Entra, identita úlohy potřebuje pouze oprávnění AcrPush v registru.

Zvažte použití principu zabezpečení s nejnižšími oprávněními. Poskytněte identitě pracovního postupu přístup pouze k registru kontejneru, a ne ke skupině prostředků nebo předplatnému.

Publikování specifikací šablon a modulů z pracovního postupu

Když publikujete specifikaci šablony z vlastního počítače pomocí Azure CLI, použijete příkaz podobný tomuto:

az ts create \
  --name StorageWithoutSAS \
  --location westus3 \
  --display-name "Storage account with SAS disabled" \
  --description "This template spec creates a storage account, which is preconfigured to disable SAS authentication." \
  --version 1 \
  --template-file main.bicep

Tento příkaz Azure CLI můžete převést na krok GitHub Actions:

- name: Publish template spec
  uses: azure/cli@v1
  with:
    inlineScript: |
      az ts create \
        --name StorageWithoutSAS \
        --location westus3 \
        --display-name "Storage account with SAS disabled" \
        --description "This template spec creates a storage account, which is preconfigured to disable SAS authentication." \
        --version 1 \
        --template-file main.bicep

Pracovní postup používá stejný postup k publikování specifikace šablony, kterou byste použili sami.

Podobně když publikujete modul Bicep z vlastního počítače pomocí Azure CLI, použijete příkaz podobný tomuto:

az bicep publish \
   --file module.bicep \
   --target 'br:toycompany.azurecr.io/mymodules/myqueue:2'

Tento příkaz Azure CLI můžete převést také na krok GitHub Actions:

- name: Publish Bicep module
  uses: azure/cli@v1
  with:
    inlineScript: |
      az bicep publish \
        --file module.bicep \
        --target 'br:toycompany.azurecr.io/mymodules/myqueue:2'

Tip

V tomto příkladu se název hostitele registru Bicep (toycompany.azurecr.io) vloží do definice kroku pracovního postupu. To není dobrý postup. Proměnné prostředí můžete použít k nastavení konfigurace, jako je tato. Dozvíte se, jak to funguje později v tomto výukovém modulu Microsoft Learn.

Krátce se dozvíte, jak můžete publikovat specifikaci šablony z pracovního postupu pomocí kroků popsaných v této lekci.

Použití modulu nebo specifikace šablony

V předchozích výukových modulech Microsoft Learn jste zjistili, jak nasadit prostředky definované v specifikacích šablon a jak používat moduly Bicep uložené v registrech. Bez ohledu na to, jestli publikujete specifikace šablony a moduly ručně nebo z pracovního postupu nasazení, použijete je a nasadíte stejným způsobem.

Například pomocí příkazu Azure CLI nebo rutiny az deployment group create pomocí Azure PowerShellu nasadíte do skupiny New-AzResourceGroupDeployment prostředků specifikaci šablony nebo souboru Bicep.