Öğretici: Bağlantılı şablonlarla şablon belirtimi oluşturma
Ana şablon ve bağlantılı şablon ile şablon belirtimi oluşturmayı öğrenin. ARM şablonlarını kuruluşunuzdaki diğer kullanıcılarla paylaşmak için şablon belirtimlerini kullanırsınız. Bu makalede, dağıtım kaynağının özelliğini kullanarak relativePath
bir ana şablonu ve bağlantılı şablonlarını paketlemek için şablon belirtimi oluşturma adımları gösterilmektedir.
Önkoşullar
Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
Not
Azure PowerShell ile şablon belirtimlerini kullanmak için 5.0.0 veya sonraki bir sürümü yüklemeniz gerekir. Azure CLI ile kullanmak için 2.14.2 veya sonraki bir sürümü kullanın.
Bağlı şablonlar oluşturma
Ana şablonu ve bağlantılı şablonu oluşturun.
Bir şablonu bağlamak için ana şablonunuza bir dağıtım kaynağı ekleyin. özelliğinde templateLink
, bağlı şablonun göreli yolunu üst şablonun yoluna uygun olarak belirtin.
Bağlı şablon linkedTemplate.json olarak adlandırılır ve ana şablonun depolandığı yolda artifacts adlı bir alt klasörde depolanır. relativePath için aşağıdaki değerlerden birini kullanabilirsiniz:
./artifacts/linkedTemplate.json
/artifacts/linkedTemplate.json
artifacts/linkedTemplate.json
relativePath
özelliği her zaman bildirilen şablon dosyasına relativePath
göre belirlenir, bu nedenle linkedTemplate.json'dan çağrılan başka bir linkedTemplate2.json varsa ve linkedTemplate2.json aynı yapıtlar alt klasöründe depolanıyorsa, linkedTemplate.json'de belirtilen relativePath yalnızca linkedTemplate2.json
olur.
Aşağıdaki JSON ile ana şablonu oluşturun. Ana şablonu yerel bilgisayarınıza azuredeploy.json olarak kaydedin. Bu öğreticide c:\Templates\linkedTS\azuredeploy.json yoluna kaydettiğiniz varsayılır, 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": "[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')]" } } } } ] }
Not
apiVersion değeri
Microsoft.Resources/deployments
2020-06-01 veya üzeri olmalıdır.Ana şablonun kaydedildiği 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": "[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')]" } } }
Şablonu yapıtlar klasörüne linkedTemplate.json olarak kaydedin.
Şablon belirtimi oluşturma
Şablon belirtimleri kaynak Gruplarında depolanır. Bir kaynak grubu oluşturun ve ardından aşağıdaki betikle bir şablon belirtimi oluşturun. Şablon belirtim 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"
İşiniz bittiğinde, şablon belirtimini Azure portalından veya aşağıdaki cmdlet'i kullanarak görüntüleyebilirsiniz:
Get-AzTemplateSpec -ResourceGroupName templatespecRG -Name webSpec
Şablon belirtimlerini dağıtma
Artık şablon belirtimini dağıtabilirsiniz. Şablon belirtimini dağıtmak, şablon belirtiminin kaynak kimliğini geçirmeniz dışında içerdiği şablonu dağıtmaya benzer. Aynı dağıtım komutlarını kullanırsınız ve gerekirse şablon belirtimi için parametre değerlerini geçirirsiniz.
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 belirtimlerini bağlantılı şablon olarak dağıtma hakkında bilgi edinmek için bkz . Öğretici: Şablon belirtimlerini bağlantılı şablon olarak dağıtma.