Nasazení prostředků pomocí Bicepu a Azure CLI
Tento článek vysvětluje, jak pomocí Azure CLI se soubory Bicep nasadit prostředky do Azure. Pokud neznáte koncepty nasazení a správy řešení Azure, podívejte se na přehled Bicep.
Požadavky
K nasazení potřebujete soubor Bicep. Soubor musí být místní.
Potřebujete Azure CLI a být připojení k Azure:
- Nainstalujte příkazy Azure CLI na místní počítač. K nasazení souborů Bicep potřebujete Azure CLI verze 2.20.0 nebo novější.
- Připojte se k Azure pomocí příkazu az login. Pokud máte více předplatných Azure, možná budete muset spustit příkaz az account set.
Ukázky pro Azure CLI jsou napsané pro bash
prostředí. Pokud chcete tuto ukázku spustit ve Windows PowerShellu nebo příkazovém řádku, budete možná muset změnit prvky skriptu.
Pokud nemáte nainstalované Azure CLI, můžete použít Azure Cloud Shell. Další informace najdete v tématu Nasazení souborů Bicep z 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.
K nasazení do skupiny prostředků použijte příkaz az deployment group create:
az deployment group create --resource-group <resource-group-name> --template-file <path-to-bicep>
K nasazení do předplatného použijte příkaz az deployment sub create:
az deployment sub create --location <location> --template-file <path-to-bicep>
Další informace o nasazeních na úrovni předplatného najdete v tématu Vytváření skupin prostředků a prostředků na úrovni předplatného.
K nasazení do skupiny pro správu použijte příkaz az deployment mg create:
az deployment mg create --location <location> --template-file <path-to-bicep>
Další informace o nasazeních na úrovni skupiny pro správu najdete v tématu Vytváření prostředků na úrovni skupiny pro správu.
K nasazení do tenanta použijte příkaz az deployment tenant create:
az deployment tenant create --location <location> --template-file <path-to-bicep>
Další informace o nasazeních na úrovni tenanta najdete v tématu Vytváření prostředků na úrovni tenanta.
Pro každý obor musí mít uživatel, který nasazuje soubor Bicep, požadovaná oprávnění k vytváření prostředků.
Nasazení místního souboru Bicep
Soubor Bicep můžete nasadit z místního počítače nebo souboru, který je uložený externě. Tato část popisuje nasazení místního souboru Bicep.
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ů. Název nemůže končit tečkou.
az group create --name ExampleGroup --location "Central US"
Pokud chcete nasadit místní soubor Bicep, použijte --template-file
přepínač v příkazu nasazení. Následující příklad také ukazuje, jak nastavit hodnotu parametru.
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--template-file <path-to-bicep> \
--parameters storageAccountType=Standard_GRS
Dokončení nasazení může trvat několik minut. Po dokončení se zobrazí zpráva, která obsahuje výsledek:
"provisioningState": "Succeeded",
Nasazení vzdáleného souboru Bicep
Azure CLI 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 najdete v tématu Nasazení vzdálených šablon JSON ARM.
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
Chcete-li předat vložené parametry, zadejte hodnoty v parameters
. Pokud chcete například předat řetězec a pole do souboru Bicep v prostředí Bash, použijte:
az deployment group create \
--resource-group testgroup \
--template-file <path-to-bicep> \
--parameters exampleString='inline string' exampleArray='["value1", "value2"]'
Pokud používáte Azure CLI s příkazovým řádkem Windows (CMD) nebo PowerShellem, předejte pole ve formátu: exampleArray="['value1','value2']"
Můžete také získat obsah souboru a poskytnout ho jako vložený parametr. Před názvem souboru zadejte @.
az deployment group create \
--resource-group testgroup \
--template-file <path-to-bicep> \
--parameters exampleString=@stringContent.txt exampleArray=@arrayContent.json
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.
Formát arrayContent.json je:
[
"value1",
"value2"
]
K předání objektu, například k nastavení značek, použijte JSON. Například váš soubor Bicep může obsahovat parametr podobný tomuto:
"resourceTags": {
"type": "object",
"defaultValue": {
"Cost Center": "IT Department"
}
}
V tomto případě můžete předat řetězec JSON a nastavit parametr, jak je znázorněno v následujícím skriptu Bash:
tags='{"Owner":"Contoso","Cost Center":"2345-324"}'
az deployment group create --name addstorage --resource-group myResourceGroup \
--template-file $bicepFile \
--parameters resourceName=abcdef4556 resourceTags="$tags"
Kolem json, který chcete předat do objektu, použijte dvojité uvozovky.
Pokud používáte Azure CLI s příkazovým řádkem Windows (CMD) nebo PowerShellem, předejte objekt v následujícím formátu:
$tags="{'Owner':'Contoso','Cost Center':'2345-324'}"
az deployment group create --name addstorage --resource-group myResourceGroup \
--template-file $bicepFile \
--parameters resourceName=abcdef4556 resourceTags=$tags
Proměnnou můžete použít k zahrnutí hodnot parametrů. V Bash nastavte proměnnou na všechny hodnoty parametrů a přidejte ji do příkazu nasazení.
params="prefix=start suffix=end"
az deployment group create \
--resource-group testgroup \
--template-file <path-to-bicep> \
--parameters $params
Pokud ale používáte Azure CLI s příkazovým řádkem Windows (CMD) nebo PowerShellem, nastavte proměnnou na řetězec JSON. Uvozovky uvozovky: $params = '{ \"prefix\": {\"value\":\"start\"}, \"suffix\": {\"value\":\"end\"} }'
.
Vyhodnocení parametrů se řídí sekvenčním pořadím, což znamená, že pokud je hodnota přiřazena vícekrát, použije se pouze poslední přiřazená hodnota. Pokud chcete zajistit správné přiřazení parametrů, doporučujeme nejprve zadat soubor parametrů a selektivně přepsat konkrétní parametry pomocí syntaxe KEY=HODNOTA . Je důležité zmínit, že pokud zadáváte bicepparam
soubor parametrů, můžete tento argument použít jenom jednou.
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ů, a to buď soubor parametrů Bicep, nebo soubor parametrů JSON, který obsahuje hodnoty parametrů. Soubor parametrů musí být místní soubor. Soubory externích parametrů se v Azure CLI nepodporují. Další informace o souboru parametrů naleznete v tématu Vytvoření souboru parametrů Resource Manageru.
Pomocí Azure CLI verze 2.53.0 nebo novější a rozhraní příkazového řádku Bicep verze 0.22.X nebo vyšší můžete nasadit soubor Bicep pomocí souboru parametrů Bicep. S příkazem using
v souboru parametrů Bicep není nutné při zadávání souboru parametrů Bicep pro --parameters
přepínač zadat --template-file
přepínač. --template-file
Zahrnutím přepínače dojde k chybě "Pouze šablona .bicep je povolena se souborem .bicepparam".
Následující příklad ukazuje soubor parametrů s názvem storage.bicepparam. Soubor je ve stejném adresáři, ve kterém je příkaz spuštěn.
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--parameters storage.bicepparam
Soubory parametrů JSON
Následující příklad ukazuje soubor parametrů s názvem storage.parameters.json. Soubor je ve stejném adresáři, ve kterém je příkaz spuštěn.
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--template-file storage.bicep \
--parameters '@storage.parameters.json'
Další informace o souboru parametrů naleznete v tématu Vytvoření souboru parametrů Resource Manageru.
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 CLI v současné době nepodporuje vytváření specifikací šablon tím, že poskytuje soubory Bicep. 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 vytvořit specifikaci šablony pomocí šablony JSON.
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í, použije se název souboru Bicep. Pokud například nasadíte soubor Bicep s názvem main.bicep
a nezadáte název nasazení, bude nasazení pojmenované 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.
deploymentName='ExampleDeployment'$RANDOM
Nebo přidejte hodnotu data.
deploymentName='ExampleDeployment'$(date +"%d-%b-%Y")
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 současně spustíte jiné nasazení, které nasadí účet úložiště s názvem newStorage
storage2
, 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 hned po jeho dokončení spustíte jiné nasazení, které nasadí účet úložiště s názvem newStorage
storage2
, pak máte 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 storage1
, a současně spustíte jiné nasazení, které nasadí účet úložiště s názvem newStorage2
storage2
, 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 tom, jak definovat parametry v souboru, najdete v tématu Vysvětlení struktury a syntaxe souborů Bicep.