Kurz: Vytvoření specifikace šablony s propojenými šablonami
Zjistěte, jak vytvořit specifikaci šablony s hlavní a propojenou šablonou. Specifikace šablon používáte ke sdílení šablon ARM s ostatními uživateli ve vaší organizaci. V tomto článku se dozvíte, jak vytvořit specifikaci šablony pro zabalení hlavní šablony a jejích propojených šablon pomocí relativePath
vlastnosti prostředku nasazení.
Požadavky
Účet Azure s aktivním předplatným. Vytvořte si účet zdarma.
Poznámka
Pokud chcete použít specifikace šablon s Azure PowerShell, musíte nainstalovat verzi 5.0.0 nebo novější. Pokud ho chcete použít s Azure CLI, použijte verzi 2.14.2 nebo novější.
Vytvoření propojených šablon
Vytvořte hlavní šablonu a propojenou šablonu.
Pokud chcete propojit šablonu, přidejte do hlavní šablony prostředek nasazení . templateLink
Ve vlastnosti zadejte relativní cestu propojené šablony v souladu s cestou nadřazené šablony.
Propojená šablona se nazývá linkedTemplate.json a je uložená v podsložce s názvem artifacts v cestě, kde je uložená hlavní šablona. Pro relativní cestu můžete použít jednu z následujících hodnot:
./artifacts/linkedTemplate.json
/artifacts/linkedTemplate.json
artifacts/linkedTemplate.json
Vlastnost relativePath
je vždy relativní k souboru šablony, kde relativePath
je deklarována, takže pokud existuje další linkedTemplate2.json, který je volána z linkedTemplate.json a linkedTemplate2.json je uložen ve stejné podsložce artifacts, relativní cesta zadaná v linkedTemplate.json je pouze linkedTemplate2.json
.
Vytvořte hlavní šablonu s následujícím kódem JSON. Uložte hlavní šablonu jako azuredeploy.json do místního počítače. Tento kurz předpokládá, že jste uložili cestu c:\Templates\linkedTS\azuredeploy.json , ale můžete použít libovolnou cestu.
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "location": { "type": "string", "defaultValue": "westus2", "metadata":{ "description": "Specify the location for the resources." } }, "storageAccountType": { "type": "string", "defaultValue": "Standard_LRS", "metadata":{ "description": "Specify the storage account type." } } }, "variables": { "appServicePlanName": "[format('plan{0}', uniquestring(resourceGroup().id))]" }, "resources": [ { "type": "Microsoft.Web/serverfarms", "apiVersion": "2022-09-01", "name": "[variables('appServicePlanName')]", "location": "[parameters('location')]", "sku": { "name": "B1", "tier": "Basic", "size": "B1", "family": "B", "capacity": 1 }, "kind": "linux", "properties": { "perSiteScaling": false, "reserved": true, "targetWorkerCount": 0, "targetWorkerSizeId": 0 } }, { "type": "Microsoft.Resources/deployments", "apiVersion": "2022-09-01", "name": "createStorage", "properties": { "mode": "Incremental", "templateLink": { "relativePath": "artifacts/linkedTemplate.json" }, "parameters": { "storageAccountType": { "value": "[parameters('storageAccountType')]" } } } } ] }
Poznámka
ApiVersion musí
Microsoft.Resources/deployments
být 2020-06-01 nebo novější.Ve složce, ve které je uložena hlavní šablona, vytvořte adresář s názvem artifacts .
Vytvořte propojenou šablonu s následujícím kódem JSON:
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "storageAccountType": { "type": "string", "defaultValue": "Standard_LRS", "allowedValues": [ "Standard_LRS", "Standard_GRS", "Standard_ZRS", "Premium_LRS" ], "metadata": { "description": "Storage Account type" } }, "location": { "type": "string", "defaultValue": "[resourceGroup().location]", "metadata": { "description": "Location for all resources." } } }, "variables": { "storageAccountName": "[format('store{0}', uniquestring(resourceGroup().id))]" }, "resources": [ { "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2022-09-01", "name": "[variables('storageAccountName')]", "location": "[parameters('location')]", "sku": { "name": "[parameters('storageAccountType')]" }, "kind": "StorageV2", "properties": {} } ], "outputs": { "storageAccountName": { "type": "string", "value": "[variables('storageAccountName')]" } } }
Uložte šablonu jako linkedTemplate.json do složky artifacts .
Vytvoření specifikace šablony
Specifikace šablon jsou uložené ve skupinách prostředků. Vytvořte skupinu prostředků a pak pomocí následujícího skriptu vytvořte specifikaci šablony. Název specifikace šablony je webSpec.
New-AzResourceGroup `
-Name templateSpecRG `
-Location westus2
New-AzTemplateSpec `
-Name webSpec `
-Version "1.0.0.0" `
-ResourceGroupName templateSpecRG `
-Location westus2 `
-TemplateFile "c:\Templates\linkedTS\azuredeploy.json"
Až budete hotovi, můžete zobrazit specifikaci šablony z Azure Portal nebo pomocí následující rutiny:
Get-AzTemplateSpec -ResourceGroupName templatespecRG -Name webSpec
Nasazení specifikace šablony
Teď můžete nasadit specifikaci šablony. Nasazení specifikace šablony je stejné jako nasazení šablony, kterou obsahuje, s tím rozdílem, že předáte ID prostředku specifikace šablony. Použijete stejné příkazy nasazení a v případě potřeby předáte hodnoty parametrů pro specifikaci šablony.
New-AzResourceGroup `
-Name webRG `
-Location westus2
$id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name webSpec -Version "1.0.0.0").Versions.Id
New-AzResourceGroupDeployment `
-TemplateSpecId $id `
-ResourceGroupName webRG
Další kroky
Další informace o nasazení specifikace šablony jako propojené šablony najdete v tématu Kurz: Nasazení specifikace šablony jako propojené šablony.