Öğretici: Bağlantılı şablonlarla şablon özellikleri oluşturma
Bir ana şablon ve bağlı şablon ile şablon özellikleri oluşturma hakkında bilgi. ARM şablonlarını, kuruluşta diğer kullanıcılarla paylaşmak için şablon özellikleri kullanırsınız. Bu makalede, dağıtım kaynağının özelliğini kullanarak bir ana şablonu ve bağlı şablonlarını paketleye bir relativePath şablon özellikleri oluşturma işlemi açıklanmıştır.
Önkoşullar
Etkin aboneliği olan bir Azure hesabı. Ücretsiz bir hesap oluşturun.
Not
Şablon özellikleri ile birlikte kullanmak Azure PowerShell 5.0.0veya sonraki bir sürümünü yüklemeniz gerekir. Azure CLI ile kullanmak için 2.14.2 veya sonraki bir sürümünü kullanın.
Bağlı şablonlar oluşturma
Ana şablonu ve bağlı şablonu oluşturun.
Bir şablonun bağlantısını oluşturmak için ana şablonunuz için bir dağıtım kaynağı ekleyin. templateLinközelliğinde, bağlı şablonun göreli yolunu üst şablonun yoluna uygun olarak belirtin.
Bağlantılı şablon üzerinde linkedTemplate.jsolarak çağrılır ve ana şablonun depolandığı yolda yapıtlar adlı bir alt klasöre depolanır. relativePath için aşağıdaki değerlerden birini kullanabilirsiniz:
./artifacts/linkedTemplate.json/artifacts/linkedTemplate.jsonartifacts/linkedTemplate.json
özelliği her zaman bildirilen şablon dosyasına göredir, bu nedenle linkedTemplate.js'dan çağrılır ve linkedTemplate2.jsüzerinde başka bir linkedTemplate2.jsvarsa aynı yapıtlar alt klasörüne depolanır, üzerinde linkedTemplate.js'de belirtilen relativePath relativePath relativePath yalnızca linkedTemplate2.json olur.
Ana şablonu aşağıdaki JSON ile oluşturun. Ana şablonu yerel azuredeploy.jsolarak kaydedin. Bu öğreticide, üzerinde bir yolac:\Templates\linkedTS\azuredeploy.js ancak herhangi bir yolu kullanabilirsiniz.
{ "$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')]" } } } } ] }Not
apiVersion
Microsoft.Resources/deployments2020-06-01 veya sonraki bir sürümde olması gerekir.Ana şablonun kayded olduğu klasörde artifacts adlı bir dizin oluşturun.
Aşağıdaki JSON ile bağlantılı şablonu oluşturun:
{ "$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')]" } } }Şablonu artifacts klasörünelinkedTemplate.js olarak kaydedin.
Şablon özellikleri oluşturma
Şablon özellikleri kaynak Gruplarında depolanır. Bir kaynak grubu oluşturun ve ardından aşağıdaki betikle bir şablon özellikleri oluşturun. Şablon özellik adı webSpec'tir.
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"
Bitirerek şablon teknik görünümünü Azure portal aşağıdaki cmdlet'i kullanarak görüntüebilirsiniz:
Get-AzTemplateSpec -ResourceGroupName templatespecRG -Name webSpec
Şablon özellikleri dağıtma
Artık şablon özellikleri dağıtabilirsiniz. Şablon spec'ini dağıtmak, içerdiği şablonu dağıtmaya benzer, ancak şablonun özellik kaynak kimliğini iletirsiniz. Aynı dağıtım komutlarını kullanırsınız ve gerekirse şablon özellikleri için parametre değerlerini iletirsiniz.
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
Sonraki adımlar
Şablon özelimimlerini bağlantılı şablon olarak dağıtma hakkında bilgi edinmek için bkz. Öğretici: Şablon özelliklerine bağlı şablon olarak dağıtma.