Självstudie: Skapa en mallspecifikt med länkade mallar
Lär dig hur du skapar en mallspecifikt med en huvudmall och en länkad mall. Du använder mallspecifikter för att dela ARM-mallar med andra användare i din organisation. Den här artikeln visar hur du skapar en mallspecifikt för att paketera en huvudmall och dess länkade mallar med relativePath hjälp av egenskapen för distributionsresursen.
Förutsättningar
Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
Anteckning
Om du vill använda mallspecifik Azure PowerShell måste du installera version 5.0.0 eller senare. Om du vill använda den med Azure CLI använder du version 2.14.2 eller senare.
Skapa länkade mallar
Skapa huvudmallen och den länkade mallen.
Om du vill länka en mall lägger du till en distributionsresurs i huvudmallen. I egenskapen templateLink anger du den relativa sökvägen till den länkade mallen i enlighet med sökvägen till den överordnade mallen.
Den länkade mallen kallas förlinkedTemplate.js på och lagras i en undermapp som kallas artefakter i sökvägen där huvudmallen lagras. Du kan använda något av följande värden för relativePath:
./artifacts/linkedTemplate.json/artifacts/linkedTemplate.jsonartifacts/linkedTemplate.json
Egenskapen är alltid relativ till mallfilen där deklareras, så om det finns en annan linkedTemplate2.jspå som anropas från linkedTemplate.jspå och linkedTemplate2.jspå lagras i samma artefaktundermapp, är relativePath som anges i relativePath relativePath linkedTemplate.jspå bara linkedTemplate2.json .
Skapa huvudmallen med följande JSON. Spara huvudmallen som azuredeploy.jspå den lokala datorn. Den här självstudien förutsätter att du har sparat en sökvägc:\Templates\linkedTS\azuredeploy.jspå men du kan använda valfri sökväg.
{ "$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')]" } } } } ] }Anteckning
ApiVersion för
Microsoft.Resources/deploymentsmåste vara 2020-06-01 eller senare.Skapa en katalog med namnet artifacts i mappen där huvudmallen sparas.
Skapa den länkade mallen med följande 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')]" } } }Spara mallen som linkedTemplate.jsi mappen artifacts.
Skapa mallspecifikt
Mallars specifikationer lagras i resursgrupper. Skapa en resursgrupp och skapa sedan en mallspecifikt med följande skript. Mallens specifikationsnamn är 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"
När du är klar kan du visa mallspecifikationen från Azure Portal eller med hjälp av följande cmdlet:
Get-AzTemplateSpec -ResourceGroupName templatespecRG -Name webSpec
Distribuera mallspecifikt
Nu kan du distribuera mallspecifikationen. Att distribuera mallspecifikationen är precis som att distribuera mallen den innehåller, förutom att du skickar in resurs-ID:t för mallspecifikationen. Du använder samma distributionskommandon, och om det behövs skickar du in parametervärden för mallspecifikationen.
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
Nästa steg
Mer information om hur du distribuerar en mallspecifikt som en länkad mall finns i Självstudie: Distribuera en mallspecifikt som en länkad mall.