Postup nasazení prostředků pomocí Bicep a Azure CLI

Tento článek vysvětluje, jak pomocí Azure CLI se soubory Bicep nasadit prostředky do Azure. Pokud nejste obeznámeni s koncepty nasazování 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řipojeni k Azure:

  • Nainstalujte na místní počítač příkazy Azure CLI. K nasazení souborů Bicep potřebujete Azure CLI verze 2.20.0 nebo novější.
  • Připojení do Azure pomocí příkazu az login. Pokud máte více předplatných Azure, možná budete muset také spustit příkaz az account set.

Ukázky pro Azure CLI jsou napsané pro bash prostředí . Pokud chcete tuto ukázku Windows PowerShell příkazovém řádku, budete možná muset změnit prvky skriptu.

Pokud nemáte Azure CLI nainstalované, můžete použít Azure Cloud Shell. Další informace najdete v tématu Nasazení souborů Bicep z Azure Cloud Shell.

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.

Pro každý obor musí mít uživatel nasazující 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 z externě uloženého souboru. 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, spojovníky a závorky. Může mít až 90 znaků. Název nemůže končít tečkou.

az group create --name ExampleGroup --location "Central US"

Pokud chcete nasadit místní soubor Bicep, použijte --template-file parametr 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 zkompilujte soubor Bicep do šablony JSON a pak soubor JSON načtěte do vzdáleného umístění.

Parametry

K předání hodnot parametrů můžete použít vložené parametry nebo soubor parametrů.

Vložené parametry

Pokud chcete předat vložené parametry, zadejte hodnoty v parameters . Pokud například chcete 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 Windows příkazového řádku (CMD) nebo PowerShellu, předejte pole ve formátu : exampleArray="['value1','value2']" .

Můžete také získat obsah souboru a poskytnout tento obsah jako vložený parametr.

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 hodnoty konfigurace. 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. Soubor Bicep může například obsahovat parametr, jako je tento:

    "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.

Můžete použít proměnnou, která bude obsahovat hodnoty parametrů. V Prostředí 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 Windows příkazového řádku (CMD) nebo PowerShellem, nastavte proměnnou na řetězec JSON. Řídicí znak uvozovek: $params = '{ \"prefix\": {\"value\":\"start\"}, \"suffix\": {\"value\":\"end\"} }' .

Soubory parametrů

Místo předávání parametrů v podobě hodnot vložených do skriptu pro vás možná bude jednodušší použít soubor JSON, který obsahuje hodnoty parametrů. Soubor parametrů musí být místní soubor. Azure CLI nepodporuje externí soubory parametrů. Soubor Bicep používá soubory parametrů JSON.

Další informace o souboru parametrů najdete v tématu Vytvoření souboru parametrů Resource Manageru.

Pokud chcete předat místní soubor parametrů, použijte k zadání místního souboru @ s názvem storage.parameters.json.

az deployment group create \
  --name ExampleDeployment \
  --resource-group ExampleGroup \
  --template-file storage.bicep \
  --parameters @storage.parameters.json

Náhled změn

Před nasazením souboru Bicep si můžete zobrazit náhled změn, které soubor Bicep ve vašem prostředí změní. Pomocí operace what-if ověřte, že soubor Bicep provede požadované změny. What-if také ověří, jestli soubor Bicep obsahuje chyby.

Nasazení specifikací šablon

Azure CLI v současné době nepodporuje vytváření specifikací šablon tím, že poskytuje soubory Bicep. Můžete však vytvořit soubor Bicep s prostředekem Microsoft.Resources/templateSpecs pro nasazení specifikace šablony. Ukázka specifikace vytvořit šablonu ukazuje, jak vytvořit specifikace š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 specifikace šablony pomocí šablony JSON.

Název nasazení

Při nasazování souboru Bicep můžete dejte nasazení název. 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 a nezadáte název nasazení, bude main.bicep mít nasazení název main .

Pokaždé, když spustíte nasazení, se do historie nasazení skupiny prostředků přidá položka 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í, bude dokončeno pouze poslední nasazení. Nasazení se stejným názvem, která se nedokončila, se nahradí posledním nasazením. Pokud například spustíte nasazení s názvem , které nasadí účet úložiště s názvem a současně spustíte další nasazení s názvem , které nasadí účet úložiště s názvem , nasadíte pouze newStorage storage1 jeden účet newStorage storage2 úložiště. Výsledný účet úložiště má název storage2 .

Pokud však spustíte nasazení s názvem , které nasadí účet úložiště s názvem , a ihned po jeho dokončení spustíte další nasazení s názvem , které nasadí účet úložiště s názvem , budete mít newStorage storage1 dva účty newStorage storage2 úložiště. Jedna má název storage1 a druhá má název storage2 . V historii nasazení ale máte jenom jednu položku.

Pokud 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 , které nasadí účet úložiště s názvem a současně spustíte další nasazení s názvem , které nasadí účet úložiště s názvem , budete mít dva účty úložiště a dvě položky v historii newStorage1 storage1 newStorage2 storage2 nasazení.

Pokud se chcete vyhnout konfliktům se souběžnými nasazeními a zajistit jedinečné položky v historii nasazení, dejte každému nasazení jedinečný název.

Další kroky