Kurz: Vytvoření specifikace šablony s propojenými šablonami
Zjistěte, jak vytvořit specifikace šablony s hlavní šablonou a propojenou šablonou. Specifikace šablon slouží ke sdílení šablon ARM s ostatními uživateli ve vaší organizaci. Tento článek ukazuje, jak vytvořit specifikace š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 se specifikací šablon Azure PowerShell, musíte nainstalovat verzi 5.0.0 nebo novější. Pokud ho chcete používat 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 šablonu propojit, přidejte do hlavní šablony prostředek nasazení. Ve vlastnosti zadejte relativní cestu propojené šablony v souladu s templateLink cestou k nadřazené šabloně.
Propojená šablona se nazývá linkedTemplate.jsna a je uložená v podsložce s názvem artifacts v cestě, kde je uložena hlavní šablona. Pro relativePath můžete použít jednu z následujících hodnot:
./artifacts/linkedTemplate.json/artifacts/linkedTemplate.jsonartifacts/linkedTemplate.json
Vlastnost je vždy relativní vzhledem k souboru šablony, kde je deklarována, takže pokud existuje další linkedTemplate2.jsna , který je volán ze souboru linkedTemplate.json a linkedTemplate2.json je uložen ve stejné relativePath relativePath podsložce artefaktů, relativní cesta zadaná v souboru linkedTemplate.json je pouze linkedTemplate2.json .
Vytvořte hlavní šablonu s následujícím kódem JSON. Uložte hlavní šablonu azuredeploy.jsdo místního počítače. Tento kurz předpokládá, že jste uložili do cesty, c:\Templates\linkedTS\azuredeploy.js, 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": "[concat('plan', uniquestring(resourceGroup().id))]" }, "resources": [ { "type": "Microsoft.Web/serverfarms", "apiVersion": "2016-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": "2020-10-01", "name": "createStorage", "properties": { "mode": "Incremental", "templateLink": { "relativePath": "artifacts/linkedTemplate.json" }, "parameters": { "storageAccountType": { "value": "[parameters('storageAccountType')]" } } } } ] }Poznámka
ApiVersion pro
Microsoft.Resources/deploymentsmusí být 2020-06-01 nebo novější.Ve složce, kde 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": "[concat('store', uniquestring(resourceGroup().id))]" }, "resources": [ { "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2019-04-01", "name": "[variables('storageAccountName')]", "location": "[parameters('location')]", "sku": { "name": "[parameters('storageAccountType')]" }, "kind": "StorageV2", "properties": {} } ], "outputs": { "storageAccountName": { "type": "string", "value": "[variables('storageAccountName')]" } } }Uložte šablonu jakolinkedTemplate.jsve složce artifacts.
Vytvoření specifikace šablony
Specifikace šablon se ukládají ve skupinách prostředků. Vytvořte skupinu prostředků a pak vytvořte specifikace šablony pomocí následujícího skriptu. 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 specifikace šablony zobrazit z Azure Portal nebo pomocí následující rutiny:
Get-AzTemplateSpec -ResourceGroupName templatespecRG -Name webSpec
Specifikace šablony nasazení
Teď můžete nasadit specifikace š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ů specifikace š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.