Publikování kódu Bicep z kanálu nasazení
Když automatizujete proces publikování pro specifikaci šablony nebo modul Bicep, musíte zajistit, aby všechno, co normálně děláte ručně, bylo možné automatizovat a spouštět v rámci kanálu. V této lekci použijete principy, které jste se dříve naučili k publikování specifikací šablon a modulů Bicep z kanálu 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 kanálu
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í pak nasadí prostředky, které jste definovali. V důsledku toho 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 kanálu 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í.
Budete se muset rozhodnout, jestli zahrnout kroky kanálu, které nasazují a testují specifikace a moduly šablony. V tomto 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žít vyhrazená předplatná nebo skupiny prostředků.
Tip
Doporučujeme zkontrolovat kód Bicep pomocí Služby Azure Pipelines , kde najdete další informace o tom, jak otestovat soubory Bicep v automatizovaném kanálu.
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 automatizovaným kanálem nasazení platí stejné principy. Vzhledem k tomu, že nejste osoba, která spouští nasazení, musíte zajistit, aby instanční objekt vašeho kanálu měl odpovídající přístup ke skupině prostředků pro publikování specifikace šablony nebo do registru kontejneru pro moduly publikování.
Tip
Když publikujete modul do registru, instanční objekt, který spouští nasazení, pravděpodobně nepotřebuje velké množství oprávnění. Pokud váš registr používá autorizaci Microsoft Entra, instanční objekt 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 instančnímu objektu kanálu přístup pouze k registru kontejneru, a ne ke skupině prostředků nebo předplatnému.
Publikování specifikací šablon a modulů z kanálu
Když publikujete specifikaci šablony z vlastního počítače pomocí Azure CLI, použijete příkaz podobný následujícímu:
az ts create \
--name StorageWithoutSAS \
--resource-group MyResourceGroup \
--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 kanálu:
- task: AzureCLI@2
name: Publish
displayName: Publish template spec
inputs:
azureSubscription: $(ServiceConnectionName)
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
az ts create \
--name StorageWithoutSAS \
--resource-group MyResourceGroup \
--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
Kanál používá stejný proces 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 kanálu:
- task: AzureCLI@2
name: Publish
displayName: Publish Bicep module
inputs:
azureSubscription: $(ServiceConnectionName)
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
az bicep publish \
--file module.bicep \
--target 'br:toycompany.azurecr.io/mymodules/myqueue:2'
Tip
V tomto příkladu je název hostitele registru Bicep vloženýtoycompany.azurecr.io
do definice kroku kanálu. To není dobrý postup. Proměnné prostředí můžete použít k nastavení konfigurace, jako je tato. V tomto modulu Microsoft Learn se dozvíte, jak to funguje později.
Postup publikování specifikace šablony z kanálu je popsaný 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 šablon a moduly ručně nebo z kanálu nasazení, použijete je a nasadíte stejným způsobem.
Například pomocí příkazu Azure CLI nebo rutiny New-AzResourceGroupDeployment
pomocí Azure PowerShellu nasadíte do skupiny az deployment group create
prostředků specifikaci šablony nebo souboru Bicep.