Aracılığıyla paylaş


Öğretici: ARM şablonunuza parametre ekleme

Önceki öğreticide şablona azure depolama hesabı eklemeyi ve dağıtmayı öğrendinsiniz. Bu öğreticide, parametreler ekleyerek Azure Resource Manager şablonunu (ARM şablonu) geliştirmeyi öğreneceksiniz. Bu yönergenin tamamlanması 14 dakika sürer.

Önkoşullar

Kaynaklar hakkında öğreticiyi tamamlamanızı öneririz, ancak gerekli değildir.

Visual Studio Code'a ve Azure PowerShell'e veya Azure CLI'ya sahip olmanız gerekir. Daha fazla bilgi için bkz. şablon araçları.

Şablonu gözden geçirme

Önceki öğreticinin sonunda, şablonunuzda aşağıdaki JSON dosyası bulunur.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2025-06-01",
      "name": "{provide-unique-name}",
      "location": "eastus",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ]
}

Bu şablonda bir sorun olduğunu fark edebilirsiniz. Depolama hesabı adı sabit kodlanmış. Bu şablonu yalnızca her seferinde aynı depolama hesabını dağıtmak için kullanabilirsiniz. Farklı bir ada sahip bir depolama hesabı dağıtmak için, dağıtımlarınızı otomatikleştirmenin pratik bir yolu olmayan yeni bir şablon oluşturmanız gerekir.

Şablonu yeniden kullanılabilir hale getirme

Şablonunuzu yeniden kullanılabilir hale getirmek için bir depolama hesabı adı geçirmek için kullanabileceğiniz bir parametre ekleyelim. Aşağıdaki örnekteki JSON dosyası, şablonunuzdaki değişiklikleri gösterir. storageName parametresi bir dize olarak tanımlanır. Depolama hesabı adının tümü küçük harfler veya sayılardır ve 24 karakterlik bir sınıra sahiptir.

Dosyanın tamamını kopyalayın ve şablonunuzu içeriğiyle değiştirin:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageName": {
      "type": "string",
      "minLength": 3,
      "maxLength": 24
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2025-06-01",
      "name": "[parameters('storageName')]",
      "location": "eastus",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ]
}

Şablonu dağıt

Şimdi şablonu dağıtalım. Aşağıdaki örnek, şablonu Azure CLI veya Azure PowerShell ile dağıtır. Depolama hesabı adını dağıtım komutundaki değerlerden biri olarak sağladığınıza dikkat edin. Depolama hesabı adı için, önceki öğreticide kullandığınız adı girin.

Kaynak grubunu oluşturmadıysanız bkz. Kaynak grubu oluşturma. Örnekte, değişkenini templateFileilk öğreticide gösterildiği gibi şablon dosyasının yoluna ayarladığınız varsayılır.

New-AzResourceGroupDeployment `
  -Name addnameparameter `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storageName "{your-unique-name}"

Kaynak güncelleştirmelerini anlama

Daha önce kullandığınız adla bir depolama hesabı dağıttığınızda, yeniden dağıtımın kaynağı nasıl etkilediğini merak edebilirsiniz.

Kaynak zaten varsa ve özelliklerde bir değişiklik yoksa, başka eyleme gerek yoktur. Kaynak varsa ve bir özellik değişirse, güncelleştirilir. Kaynak yoksa oluşturulur.

Güncelleştirmeleri işlemenin bu yolu, şablonunuzun bir Azure çözümü için ihtiyacınız olan tüm kaynakları içerebileceği anlamına gelir. Şablonu güvenli bir şekilde yeniden dağıtabilir ve kaynakların değiştiğini veya yalnızca gerektiğinde oluşturulduğunu bilirsiniz. Örneğin, depolama hesabınıza dosya eklerseniz, dosyaları kaybetmeden depolama hesabını yeniden dağıtabilirsiniz.

Ortama göre özelleştirme

Parametreler, belirli bir ortam için uyarlanmış değerler sağlayarak dağıtımı özelleştirmenize olanak tanır. Örneğin, bir geliştirme, test veya üretim ortamına dağıtım yaptığınıza bağlı olarak farklı değerler geçirebilirsiniz.

Önceki şablon her zaman standart bir yerel olarak yedekli depolama (LRS) Standard_LRS hesabı dağıtır. Ortama bağlı olarak farklı stok tutma birimleri (SKU' lar) dağıtma esnekliğini isteyebilirsiniz. Aşağıdaki örnek, SKU için parametre ekleme değişikliklerini gösterir. Dosyanın tamamını kopyalayın ve şablonunuzun üzerine yapıştırın:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageName": {
      "type": "string",
      "minLength": 3,
      "maxLength": 24
    },
    "storageSKU": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_RAGRS",
        "Standard_ZRS",
        "Premium_LRS",
        "Premium_ZRS",
        "Standard_GZRS",
        "Standard_RAGZRS"
      ]
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2025-06-01",
      "name": "[parameters('storageName')]",
      "location": "eastus",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ]
}

parametresi varsayılan storageSKU bir değere sahiptir. Dağıtım belirtmediğinde bu değeri kullanın. Ayrıca izin verilen değerlerin bir listesi de vardır. Bu değerler, depolama hesabı oluşturmak için gereken değerlerle eşleşmektedir. Şablon kullanıcılarınızın çalışır durumda olan SKU'ları iletmesini istiyorsunuz.

Şablonu yeniden dağıtma

Yeniden dağıtmaya hazırsınız. Varsayılan SKU Standard_LRS olarak ayarlandığından, zaten bir parametre değeri sağladınız.

New-AzResourceGroupDeployment `
  -Name addskuparameter `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storageName "{your-unique-name}"

Uyarı

Dağıtım başarısız olursa, oluşturulmakta olan kaynaklar hakkında bilgi almak için verbose anahtarını kullanın. debug Hata ayıklama hakkında daha fazla bilgi edinmek için anahtarını kullanın.

Şablonunuzun esnekliğini görmek için yeniden dağıtalım. Bu kez SKU parametresini standart coğrafi olarak yedekli depolama (GRS) Standard_GRS olarak ayarlayın. Farklı bir depolama hesabı oluşturmak için yeni bir ad geçirebilir veya mevcut depolama hesabınızı güncelleştirmek için aynı adı kullanabilirsiniz. Her iki seçenek de çalışır.

New-AzResourceGroupDeployment `
  -Name usenondefaultsku `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storageName "{your-unique-name}" `
  -storageSKU Standard_GRS

Son olarak, bir test daha çalıştıralım ve izin verilen değerlerden biri olmayan bir SKU'yu geçtiğinizde ne olacağını görelim. Bu durumda, şablon kullanıcınızın temel olarak SKU'lardan biri olduğunu düşündüğü senaryoyu test ederiz.

New-AzResourceGroupDeployment `
  -Name testskuparameter `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storageName "{your-unique-name}" `
  -storageSKU basic

Komut, izin verilen değerleri veren bir hata iletisiyle aynı anda başarısız olur. ARM işlemcisi, dağıtım başlamadan önce hatayı bulur.

Kaynakları temizle

Sonraki öğreticiye geçiyorsanız kaynak grubunu silmeniz gerekmez.

Şimdi durduruyorsanız, kaynak grubunu silerek dağıtılan kaynaklarınızı temizlemek isteyebilirsiniz.

  1. Azure portalından soldaki menüden Kaynak grubu'na tıklayın.
  2. Herhangi bir alan için filtre uygula ... metin alanına kaynak grubu adını yazın.
  3. myResourceGroup'un yanındaki kutuyu işaretleyin ve myResourceGroup veya kaynak grubunuzun adını seçin.
  4. Üstteki menüden Kaynak grubunu sil'i seçin.

Sonraki Adımlar

İlk öğreticide oluşturduğunuz şablonu parametreler ekleyerek geliştirdiniz. Sonraki öğreticide şablon işlevleri hakkında bilgi edinacaksınız.