Bu hızlı başlangıçta bir Azure Resource Manager şablonunu (ARM şablonu) şablon belirtimine nasıl paketlediğiniz gösterilmektedir. Ardından bu şablon belirtimlerini dağıtırsınız. Şablon belirtiminiz, depolama hesabı dağıtan bir ARM şablonu içerir.
Tip
ARM şablonlarıyla aynı özellikleri sunduğundan ve söz diziminin kullanımı daha kolay olduğundan Bicep önerilir. Daha fazla bilgi edinmek için bkz . Hızlı Başlangıç: Bicep ile şablon belirtimi oluşturma ve dağıtma.
Prerequisites
Etkin aboneliği olan bir Azure hesabı.
Ücretsiz hesap oluşturun.
Şablon oluşturma
ARM şablonundan bir şablon belirtimi oluşturursunuz. Aşağıdaki şablonu kopyalayın ve C:\Templates\createStorageV1.js olarak kaydedin.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountName": {
"type": "string",
"defaultValue": "[uniqueString(resourceGroup().id)]"
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2025-06-01",
"name": "[parameters('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2",
"properties": {
"accessTier": "Hot"
}
}
]
}
Şablon belirtimi oluşturma
Şablon belirtimi adlı Microsoft.Resources/templateSpecsbir kaynak türüdür. Şablon belirtimi oluşturmak için PowerShell, Azure CLI, Azure portalı veya ARM şablonu kullanın.
Şablon belirtimini içerecek yeni bir kaynak grubu oluşturun.
New-AzResourceGroup `
-Name templateSpecRG `
-Location westus2
Bu kaynak grubunda şablon belirtimini oluşturun. Yeni şablona storageSpec adını verin.
New-AzTemplateSpec `
-Name storageSpec `
-Version "1.0" `
-ResourceGroupName templateSpecRG `
-Location westus2 `
-TemplateFile "C:\Templates\createStorageV1.json"
Şablon belirtimini içerecek yeni bir kaynak grubu oluşturun.
az group create \
--name templateSpecRG \
--location westus2
Bu kaynak grubunda şablon belirtimini oluşturun. Yeni şablona storageSpec adını verin.
az ts create \
--name storageSpec \
--version "1.0" \
--resource-group templateSpecRG \
--location "westus2" \
--template-file "C:\Templates\createStorageV1.json"
Azure Portal’ında oturum açın.
Şablon belirtimlerini arayın. Kullanılabilir seçeneklerden Şablon belirtimleri'ni seçin.
Şablonu içeri aktar'ı seçin ve daha önce kaydettiğiniz C:\Templates\createStorageV1.js içeri aktarmak için yönergeleri izleyin.
Aşağıdaki değerleri girin:
-
Ad: Şablon belirtimi için bir ad girin. Örneğin storageSpec.
-
Abonelik: Şablon belirtimini oluşturmak için kullanılan azure aboneliğini seçin.
-
Kaynak Grubu: Yeni oluştur'u seçin ve ardından yeni bir kaynak grubu adı girin. Örneğin templateSpecRG.
-
Konum: Kaynak grubu için bir konum seçin. Örneğin, Batı ABD 2.
-
Sürüm: Şablon belirtimi için bir sürüm girin. 1.0 kullanın.
Gözden Geçir + Oluştur'u ve ardından Oluştur'u seçin.
Note
Şablon belirtiminizi oluşturmak için ARM şablonu yerine PowerShell veya CLI kullanmanızı öneririz. Bu araçlar, bağlantılı şablonları otomatik olarak ana şablonla ilişkili yapıtlara dönüştürür. ARM şablonu kullanıyorsanız, bağlantılı şablonları el ile yapıt olarak eklemeniz gerekir ve bu daha karmaşık olabilir.
Şablon belirtimini oluşturmak için bir ARM şablonu kullandığınızda, şablon kaynak tanımına eklenir. Aşağıdaki şablonu kopyalayın ve createTemplateSpec.jsonolarak yerel olarak kaydedin:
Note
Ekli şablonda, tüm şablon ifadelerinin ikinci bir sol köşeli ayraçla kaçış noktası olmalıdır. yerine "[[kullanın"[. JSON dizileri yine de tek bir sol köşeli ayraç kullanır. Aşağıdaki örnekteki ad ve konum özelliklerine bakın:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Resources/templateSpecs",
"apiVersion": "2022-02-01",
"name": "storageSpec",
"location": "westus2",
"properties": {
"displayName": "Storage template spec"
}
},
{
"type": "Microsoft.Resources/templateSpecs/versions",
"apiVersion": "2022-02-01",
"name": "[format('{0}/{1}', 'storageSpec', '1.0')]",
"location": "westus2",
"properties": {
"mainTemplate": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountName": {
"type": "string",
"defaultValue": "[uniqueString(resourceGroup().id)]"
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2025-06-01",
"name": "[[parameters('storageAccountName')]",
"location": "[[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2",
"properties": {
"accessTier": "Hot"
}
}
]
}
},
"dependsOn": [
"storageSpec"
]
}
]
}
Yeni bir kaynak grubu oluşturmak için Azure CLI veya PowerShell kullanın.
New-AzResourceGroup `
-Name templateSpecRG `
-Location westus2
az group create \
--name templateSpecRG \
--location westus2
Şablonunuzu Azure CLI veya PowerShell ile dağıtın.
New-AzResourceGroupDeployment `
-ResourceGroupName templateSpecRG `
-TemplateFile "C:\Templates\createTemplateSpec.json"
az deployment group create \
--resource-group templateSpecRG \
--template-file "C:\Templates\createTemplateSepc.json"
Azure CLI veya PowerShell ile dağıtımı doğrulayın.
Get-AzTemplateSpec `
-ResourceGroupName templateSpecRG `
-Name storageSpec
az ts show \
--resource-group templateSpecRG \
--name storageSpec
Şablon belirtimlerini dağıtma
Şablon belirtimini dağıtmak için, şablon dağıtmak için kullandığınız dağıtım komutlarının aynısını kullanın. Dağıtılacak şablon belirtiminin kaynak kimliğini geçirin.
Yeni depolama hesabını içerecek bir kaynak grubu oluşturun.
New-AzResourceGroup `
-Name storageRG `
-Location westus2
Şablon belirtiminin kaynak kimliğini alın.
$id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name storageSpec -Version "1.0").Versions.Id
Şablon belirtimini dağıtın.
New-AzResourceGroupDeployment `
-TemplateSpecId $id `
-ResourceGroupName storageRG
Arm şablonu için yaptığınız parametreleri tam olarak sağlayın. Şablon belirtimini depolama hesabı türü için bir parametreyle yeniden dağıtın.
New-AzResourceGroupDeployment `
-TemplateSpecId $id `
-ResourceGroupName storageRG `
-storageAccountType Standard_GRS
Yeni depolama hesabını içerecek bir kaynak grubu oluşturun.
az group create \
--name storageRG \
--location westus2
Şablon belirtiminin kaynak kimliğini alın.
id=$(az ts show --name storageSpec --resource-group templateSpecRG --version "1.0" --query "id")
Note
Şablon belirtim kimliğini alma ve Windows PowerShell'de bir değişkene atama ile ilgili bilinen bir sorun vardır.
Şablon belirtimini dağıtın.
az deployment group create \
--resource-group storageRG \
--template-spec $id
Arm şablonu için yaptığınız parametreleri tam olarak sağlayın. Şablon belirtimini depolama hesabı türü için bir parametreyle yeniden dağıtın.
az deployment group create \
--resource-group storageRG \
--template-spec $id \
--parameters storageAccountType='Standard_GRS'
Oluşturduğunuz şablon belirtimini seçin. Çok sayıda şablon varsa, şablon belirtimini bulmak için arama kutusunu kullanın.
Dağıt'ı seçin.
Aşağıdaki değerleri girin:
-
Abonelik: Kaynağı oluşturmak için bir Azure aboneliği seçin.
-
Kaynak grubu: Yeni oluştur'u seçin ve storageRG girin.
Gözden geçir ve oluştur'u seçin ve ardından Oluştur seçeneğini belirleyin.
Aşağıdaki şablonu kopyalayın ve deployTemplateSpecV1.jsonolarak yerel olarak kaydedin:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2025-04-01",
"name": "demo",
"properties": {
"templateLink": {
"id": "[resourceId('templateSpecRG', 'Microsoft.Resources/templateSpecs/versions', 'storageSpec', '1.0')]"
},
"parameters": {
},
"mode": "Incremental"
}
}
]
}
Şablonda templateSpecRG, şablon belirtimini içeren kaynak grubunun adıdır, storageSpec şablon belirtiminin adıdır ve 1,0 , şablon belirtiminin sürümüdür.
Depolama hesabı için yeni bir kaynak grubu oluşturmak için Azure CLI veya PowerShell kullanın.
New-AzResourceGroup `
-Name storageRG `
-Location westus2
az group create \
--name storageRG \
--location westus2
Şablonunuzu Azure CLI veya PowerShell ile dağıtın.
New-AzResourceGroupDeployment `
-ResourceGroupName storageRG `
-TemplateFile "C:\Templates\deployTemplateSpecV1.json"
az deployment group create \
--resource-group storageRG \
--template-file "C:\Templates\deployTemplateSpecV1.json"
Azure CLI veya PowerShell ile dağıtımı doğrulayın.
Get-AzResource `
-ResourceGroupName storageRG
az resource list \
--resource-group storageRG
Erişim izni ver
Kuruluşunuzdaki diğer kullanıcıların şablon belirtiminizi dağıtmasına izin vermek için onlara okuma erişimi verin. Okuyucu rolünü, paylaşmak istediğiniz şablon belirtimlerini içeren kaynak grubu için bir Microsoft Entra grubuna atayın. Daha fazla bilgi için bkz . Öğretici: Azure PowerShell kullanarak Azure kaynaklarına grup erişimi verme.
Şablonu güncelleştirme
Şablon belirtiminizde şablonda değişiklik yapmak için şablonu düzeltin. Aşağıdaki şablon, depolama hesabı adı için bir ön ek eklemesi dışında önceki şablonunuzla benzerdir. Aşağıdaki şablonu kopyalayın ve createStorageV2.json dosyası olarak kaydedin.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountName": {
"type": "string",
"defaultValue": "[format('store{0}', uniqueString(resourceGroup().id))]"
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2025-06-01",
"name": "[parameters('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2",
"properties": {
"accessTier": "Hot"
}
}
]
}
Şablon belirtim sürümünü güncelleştirme
Düzeltilen şablon için yeni bir şablon belirtimi oluşturmak yerine mevcut şablon belirtimine adlı 2.0 yeni bir sürüm ekleyin. Her iki sürümü de dağıtabilirsiniz.
Şablon belirtimi için yeni bir sürüm oluşturun.
New-AzTemplateSpec `
-Name storageSpec `
-Version "2.0" `
-ResourceGroupName templateSpecRG `
-Location westus2 `
-TemplateFile "C:\Templates\createStorageV2.json"
Yeni sürümü dağıtmak için 2.0 sürümün kaynak kimliğini alın.
$id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name storageSpec -Version "2.0").Versions.Id
Bu sürümü dağıtın. Depolama hesabı adı için bir ön ek sağlayın.
New-AzResourceGroupDeployment `
-TemplateSpecId $id `
-ResourceGroupName storageRG `
-namePrefix "demoaccount"
Şablon belirtimi için yeni bir sürüm oluşturun.
az ts create \
--name storageSpec \
--version "2.0" \
--resource-group templateSpecRG \
--location "westus2" \
--template-file "C:\Templates\createStorageV2.json"
Yeni sürümü dağıtmak için 2.0 sürümün kaynak kimliğini alın.
id=$(az ts show --name storageSpec --resource-group templateSpecRG --version "2.0" --query "id")
Bu sürümü dağıtın. Depolama hesabı adı için bir ön ek sağlayın.
az deployment group create \
--resource-group storageRG \
--template-spec $id \
--parameters namePrefix='demoaccount'
Şablon belirtimi storageSpec'i açın ve Yeni sürüm oluştur'u seçin.
Temel şablon olarak 1.0'ı ve ardından Oluştur'u seçin.
Yeni sürümü 2.0 adlandırın ve isteğe bağlı olarak notlar ekleyin. Şablonu düzenle'yi seçin.
Şablonun içeriğini güncelleştirilmiş şablonla değiştirin. Gözden Geçir + Kaydet'i seçin.
Değişiklikleri Kaydet'i seçin.
Yeni sürümü dağıtmak için Sürümler'i seçin.
Yeni sürümü açın ve dağıt'ı seçin.
Önceki sürümü dağıtırken yaptığınız gibi alanları doldurun.
Gözden geçir ve oluştur'u seçin ve ardından Oluştur seçeneğini belirleyin.
Şablon belirtimleriyle çalışmasını sağlamak için yerel şablonunuzda bazı değişiklikler yapmanız gerekir. Aşağıdaki şablonu kopyalayın ve createTemplateSpec.jsonolarak yerel olarak kaydedin:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Resources/templateSpecs",
"apiVersion": "2022-02-01",
"name": "storageSpec",
"location": "westus2",
"properties": {
"displayName": "Storage template spec"
}
},
{
"type": "Microsoft.Resources/templateSpecs/versions",
"apiVersion": "2022-02-01",
"name": "[format('{0}/{1}', 'storageSpec', '2.0')]",
"location": "westus2",
"properties": {
"mainTemplate": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountName": {
"type": "string",
"defaultValue": "[format('store{0}', uniqueString(resourceGroup().id))]"
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2025-06-01",
"name": "[[parameters('storageAccountName')]",
"location": "[[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2",
"properties": {
"accessTier": "Hot"
}
}
]
}
},
"dependsOn": [
"storageSpec"
]
}
]
}
Şablon belirtiminize yeni sürümü eklemek için şablonunuzu Azure CLI veya PowerShell ile dağıtın.
New-AzResourceGroupDeployment `
-ResourceGroupName templateSpecRG `
-TemplateFile "C:\Templates\createTemplateSpec.json"
az deployment group create \
--resource-group templateSpecRG \
--template-file "C:\Templates\createTemplateSpec.json"
Azure CLI veya PowerShell ile dağıtımı doğrulayın.
Get-AzTemplateSpec `
-ResourceGroupName templateSpecRG `
-Name storageSpec
az ts show \
--resource-group templateSpecRG \
--name storageSpec
Sürüm listesinde yeni sürümü 2.0 görmeniz gerekir.
Aşağıdaki şablonu kopyalayın ve deployTemplateSpecV2.jsonolarak yerel olarak kaydedin:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2025-04-01",
"name": "demo",
"properties": {
"templateLink": {
"id": "[resourceId('templateSpecRG', 'Microsoft.Resources/templateSpecs/versions', 'storageSpec', '2.0')]"
},
"parameters": {
},
"mode": "Incremental"
}
}
]
}
Şablonunuzu Azure CLI veya PowerShell ile dağıtın.
New-AzResourceGroupDeployment `
-ResourceGroupName storageRG `
-TemplateFile "C:\Templates\deployTemplateSpecV2.json"
az deployment group create \
--resource-group storageRG \
--template-file "C:\Templates\deployTemplateSpecV2.json"
Azure CLI veya PowerShell ile dağıtımı doğrulayın.
Get-AzResource `
-ResourceGroupName storageRG
az resource list \
--resource-group storageRG
store ile başlayan bir adı ve kaynak grubu kimliğine dayalı benzersiz bir dizeye sahip yeni depolama hesabını görmelisiniz.
Kaynakları temizleme
Bu hızlı başlangıçta dağıttığınız kaynağı temizlemek için oluşturduğunuz her iki kaynak grubunu da silin.
- Azure portalında sol menüden Kaynak grubu’nu seçin.
- Ada göre filtrele alanına kaynak grubu adını (templateSpecRG ve storageRG) girin.
- Kaynak grubu adını seçin.
- Üstteki menüden Kaynak grubunu sil’i seçin.
Sonraki Adımlar
Bağlantılı şablonlar içeren bir şablon belirtimi oluşturma hakkında bilgi edinmek için bkz. Bağlantılı şablonun şablon belirtimini oluşturma.