Kurz: Vytvoření specifikace šablony s propojenými šablonami
Zjistěte, jak vytvořit specifikaci šablony s hlavní šablonou a propojenou šablonou. Pomocí specifikací šablon můžete sdílet šablony ARM s ostatními uživateli ve vaší organizaci. Tento článek ukazuje, 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ření účtu zdarma
Poznámka:
Pokud chcete použít specifikace šablon s Azure PowerShellem, 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 vytvořit propojení šablony, 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žena v podsložce s názvem artefakty v cestě, kde je uložena 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
relativePath
Vlastnost je vždy relativní vzhledem 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žena ve stejné podsložce artefaktů, 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. V tomto kurzu se 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, do které je uložena hlavní šablona, vytvořte adresář s názvem artefakty .
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 artefaktů .
Vytvoření specifikace šablony
Specifikace šablon se ukládají do skupin prostředků. Vytvořte skupinu prostředků a pak vytvořte specifikaci šablony s následujícím skriptem. 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 webu 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 se podobá nasazení šablony, která 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.