Nasazení souborů Bicep pomocí Azure PowerShellu
Tento článek vysvětluje, jak pomocí Azure PowerShellu se soubory Bicep nasadit prostředky do Azure. Pokud nevíte, jak nasazovat a spravovat řešení Azure, přečtěte si téma Co je Bicep?
Požadavky
K nasazení potřebujete soubor Bicep a soubor musí být místní. Potřebujete také Azure PowerShell a připojit se k Azure:
- Nainstalujte rutiny Azure PowerShellu do místního počítače. K nasazení souborů Bicep potřebujete Azure PowerShell verze 5.6.0 nebo novější. Další informace najdete v tématu Začínáme s Azure PowerShellem.
- Nainstalujte rozhraní příkazového řádku Bicep. Rozhraní příkazového řádku Bicep musíte nainstalovat ručně, protože ho Azure PowerShell neinstaluje automaticky.
- Slouží
Connect-AzAccount
k připojení k Azure. Pokud máte více předplatných Azure, možná budete muset spustitSet-AzContext
také . Další informace najdete v tématu Použití několika předplatných Azure.
Pokud nemáte nainstalovaný PowerShell, můžete použít Azure Cloud Shell. Další informace najdete v tématu Nasazení souborů Bicep pomocí Azure Cloud Shellu.
Požadována oprávnění
Pokud chcete nasadit soubor Bicep nebo šablonu ARM, musíte mít přístup k zápisu pro prostředky, které nasazujete, a přístup ke všem operacím s prostředky typu Microsoft.Resources/deployments. Pokud chcete například nasadit virtuální počítač, potřebujete Microsoft.Compute/virtualMachines/write
a Microsoft.Resources/deployments/*
oprávnění. Operace citlivostní operace má stejné požadavky na oprávnění.
Seznam rolí a oprávnění najdete v tématu Předdefinované role Azure.
Obor nasazení
Nasazení můžete cílit na skupinu prostředků, předplatné, skupinu pro správu nebo tenanta. V závislosti na rozsahu nasazení použijete různé příkazy a uživatel, který nasazuje soubor Bicep, musí mít požadovaná oprávnění k vytváření prostředků pro každý obor.
K nasazení do skupiny prostředků použijte
New-AzResourceGroupDeployment
:New-AzResourceGroupDeployment -ResourceGroupName <resource-group-name> -TemplateFile <path-to-bicep>
K nasazení do předplatného použijte
New-AzSubscriptionDeployment
alias rutinyNew-AzDeployment
:New-AzSubscriptionDeployment -Location <location> -TemplateFile <path-to-bicep>
Další informace o nasazeních na úrovni předplatného najdete v tématu Použití Bicep k nasazení prostředků do předplatného.
K nasazení do skupiny pro správu použijte
New-AzManagementGroupDeployment
.New-AzManagementGroupDeployment -ManagementGroupId <management-group-id> -Location <location> -TemplateFile <path-to-bicep>
Další informace o nasazeních na úrovni skupin pro správu najdete v tématu Použití Bicep k nasazení prostředků do skupiny pro správu.
K nasazení do tenanta použijte
New-AzTenantDeployment
.New-AzTenantDeployment -Location <location> -TemplateFile <path-to-bicep>
Další informace o nasazeních na úrovni tenanta najdete v tématu Použití Bicep k nasazení prostředků do tenanta.
Nasazení místního souboru Bicep
Tato část popisuje, jak nasadit místní soubor Bicep. Soubor Bicep můžete nasadit z místního počítače nebo z externího počítače.
Pokud nasazujete do skupiny prostředků, která neexistuje, vytvořte skupinu prostředků. Název skupiny prostředků může obsahovat pouze alfanumerické znaky, tečky, podtržítka, pomlčky a závorky. Může to být až 90 znaků a nemůže končit tečkou.
New-AzResourceGroup -Name ExampleGroup -Location "Central US"
Pokud chcete nasadit místní soubor Bicep, použijte -TemplateFile
přepínač v příkazu nasazení:
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleGroup `
-TemplateFile <path-to-bicep>
Dokončení nasazení může trvat několik minut.
Nasazení vzdáleného souboru Bicep
Azure PowerShell v současné době nepodporuje nasazování vzdálených souborů Bicep. Pomocí rozhraní příkazového řádku Bicep můžete sestavit soubor Bicep do šablony JSON a pak soubor JSON načíst do vzdáleného umístění. Další informace naleznete v tématu Nasazení vzdálené šablony.
Parametry
K předání hodnot parametrů můžete použít vložené parametry nebo soubor parametrů. Soubor parametrů může být soubor parametrů Bicep nebo soubor parametrů JSON.
Vložené parametry
Pokud chcete předat vložené parametry, zadejte názvy parametru pomocí New-AzResourceGroupDeployment
příkazu. Pokud chcete například předat řetězec a pole do souboru Bicep, použijte:
$arrayParam = "value1", "value2"
New-AzResourceGroupDeployment -ResourceGroupName testgroup `
-TemplateFile <path-to-bicep> `
-exampleString "inline string" `
-exampleArray $arrayParam
Tento parametr můžete použít TemplateParameterObject
k předání hashovatelné tabulky, která obsahuje parametry šablony:
$params = @{
exampleString = "inline string"
exampleArray = "value1", "value2"
}
New-AzResourceGroupDeployment -ResourceGroupName testgroup `
-TemplateFile <path-to-bicep> `
-TemplateParameterObject $params
Můžete také získat obsah souboru a poskytnout ho jako vložený parametr:
$arrayParam = "value1", "value2"
New-AzResourceGroupDeployment -ResourceGroupName testgroup `
-TemplateFile <path-to-bicep> `
-exampleString $(Get-Content -Path c:\MyTemplates\stringcontent.txt -Raw) `
-exampleArray $arrayParam
Získání hodnoty parametru ze souboru je užitečné, když potřebujete zadat konfigurační hodnoty. Můžete například zadat hodnoty cloud-init pro virtuální počítač s Linuxem.
Pokud potřebujete předat pole objektů, vytvořte v Azure PowerShellu tabulky hash a přidejte je do pole. Toto pole předejte jako parametr během nasazení:
$hash1 = @{ Name = "firstSubnet"; AddressPrefix = "10.0.0.0/24"}
$hash2 = @{ Name = "secondSubnet"; AddressPrefix = "10.0.1.0/24"}
$subnetArray = $hash1, $hash2
New-AzResourceGroupDeployment -ResourceGroupName testgroup `
-TemplateFile <path-to-bicep> `
-exampleArray $subnetArray
Soubory parametrů Bicep
Místo předávání parametrů jako vložených hodnot ve skriptu může být jednodušší použít soubor parametrů Bicep nebo soubor parametrů JSON, který obsahuje hodnoty parametrů. Soubor parametrů Bicep musí být místní soubor, zatímco soubor šablony JSON se může nacházet někde online. Další informace o souborech parametrů najdete v tématu Vytvoření souborů parametrů pro nasazení Bicep.
Soubor parametrů Bicep můžete použít k nasazení souboru Bicep pomocí Azure PowerShellu verze 10.4.0 nebo novější a rozhraní příkazového řádku Bicep verze 0.22.X nebo novější. S příkazem using
v souboru parametrů Bicep není nutné při zadávání souboru parametrů Bicep pro -TemplateParameterFile
přepínač zadat -TemplateFile
přepínač.
Následující příklad ukazuje soubor parametrů s názvem storage.bicepparam. Soubor je ve stejném adresáři, ve kterém příkaz běží:
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateParameterFile storage.bicepparam
Soubory parametrů JSON
Soubor parametrů JSON může místní nebo externí soubor s přístupným identifikátorem URI.
Pokud chcete předat místní soubor parametrů, použijte TemplateParameterFile
přepínač se souborem parametrů JSON:
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateFile c:\BicepFiles\storage.bicep `
-TemplateParameterFile c:\BicepFiles\storage.parameters.json
Pokud chcete předat soubor externích parametrů, použijte tento TemplateParameterUri
parametr:
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateFile c:\BicepFiles\storage.bicep `
-TemplateParameterUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.parameters.json
TemplateParameterUri
Vzhledem k tomu, že parametr podporuje pouze soubory parametrů JSON, nepodporuje .bicepparam
soubory.
V rámci stejné operace nasazení můžete použít vložené parametry a soubor parametrů umístění. Další informace naleznete v tématu Priorita parametru.
Náhled změn
Před nasazením souboru Bicep můžete zobrazit náhled změn, které soubor Bicep provede ve vašem prostředí. Pomocí operace citlivostní citlivosti ověřte, že soubor Bicep provede očekávané změny. Citlivostní kontrola také ověří chyby v souboru Bicep.
Nasazení specifikací šablon
Azure PowerShell v současné době neposkytuje soubory Bicep, které vám pomůžou vytvářet specifikace šablon. K nasazení specifikace šablony ale můžete vytvořit soubor Bicep s prostředkem Microsoft.Resources/templateSpecs . Ukázka vytvoření specifikace šablony ukazuje, jak vytvořit specifikaci šablony v souboru Bicep. Soubor Bicep můžete také sestavit do FORMÁTU JSON pomocí rozhraní příkazového řádku Bicep a pak pomocí šablony JSON vytvořit specifikaci šablony.
Název nasazení
Při nasazování souboru Bicep můžete nasazení pojmenovat. Tento název vám může pomoct načíst nasazení z historie nasazení. Pokud nezadáte název nasazení, jeho název se změní na název souboru Bicep. Pokud například nasadíte soubor Bicep s názvem main.bicep a nezadáte název nasazení, bude se nasazení jmenovat main
.
Při každém spuštění nasazení se položka přidá do historie nasazení skupiny prostředků s názvem nasazení. Pokud spustíte jiné nasazení a dáte mu stejný název, nahradí se předchozí položka aktuálním nasazením. Pokud chcete zachovat jedinečné položky v historii nasazení, dejte každému nasazení jedinečný název.
Pokud chcete vytvořit jedinečný název, můžete přiřadit náhodné číslo:
$suffix = Get-Random -Maximum 1000
$deploymentName = "ExampleDeployment" + $suffix
Nebo přidejte hodnotu data:
$today=Get-Date -Format "MM-dd-yyyy"
$deploymentName="ExampleDeployment"+"$today"
Pokud spustíte souběžná nasazení do stejné skupiny prostředků se stejným názvem nasazení, dokončí se pouze poslední nasazení. Všechna nasazení se stejným názvem, který se nedokončil, se nahradí posledním nasazením. Pokud například spustíte nasazení s názvem newStorage
, které nasadí účet úložiště s názvem storage1
a spustíte jiné nasazení, newStorage
které nasadí účet úložiště pojmenovaný storage2
současně, nasadíte pouze jeden účet úložiště. Výsledný účet úložiště má název storage2
.
Pokud však spustíte nasazení s názvem newStorage
, které nasadí účet úložiště s názvem storage1
a okamžitě spustíte jiné nasazení, které nasadí účet úložiště pojmenovaný newStorage
storage2
po dokončení prvního nasazení, budete mít dva účty úložiště. Jeden má název storage1
a druhý má název storage2
. V historii nasazení ale máte jenom jednu položku.
Když pro každé nasazení zadáte jedinečný název, můžete je spustit souběžně bez konfliktu. Pokud spustíte nasazení s názvem newStorage1
, které nasadí účet úložiště s názvem a storage1
spustíte jiné nasazení, newStorage2
které nasadí účet storage2
úložiště pojmenovaný současně, budete mít dva účty úložiště a dvě položky v historii nasazení.
Aby nedocházelo ke konfliktům se souběžnými nasazeními a k zajištění jedinečných položek v historii nasazení, dejte každému nasazení jedinečný název.
Další kroky
Informace o definování parametrů v souboru najdete v tématu Vysvětlení struktury a syntaxe souborů Bicep.