Öğretici: ARM şablonlarıyla birden çok kaynak örneği oluşturma

Bir Azure kaynağının birden çok örneğini oluşturmak için Azure Resource Manager şablonunuzda (ARM şablonu) yinelemeyi öğrenin. Bu öğreticide, bir şablonu değiştirerek üç depolama hesabı örneği oluşturacaksınız.

Azure Resource Manager birden çok örnek oluşturmayı gösteren diyagram.

Bu öğretici aşağıdaki görevleri kapsar:

  • Hızlı başlangıç şablonunu açma
  • Şablonu düzenleme
  • Şablonu dağıtma

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Kaynak kopyalamayı kapsayan bir Learn modülü için bkz. Gelişmiş ARM şablonu özelliklerini kullanarak karmaşık bulut dağıtımlarını yönetme.

Önkoşullar

Bu makaleyi tamamlamak için gerekenler:

Hızlı başlangıç şablonunu açma

Azure Hızlı Başlangıç Şablonları , ARM şablonları için bir depodur. Sıfırdan bir şablon oluşturmak yerine örnek bir şablon bulabilir ve bunu özelleştirebilirsiniz. Bu hızlı başlangıçta kullanılan şablon Standart depolama hesabı oluşturma olarak adlandırılır. Şablon, Azure Depolama hesabı kaynağını tanımlar.

  1. Visual Studio Code DosyaAç'ıseçin>.

  2. Dosya adı’na şu URL’yi yapıştırın:

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json
    
  3. Dosyayı açmak için ’ı seçin.

  4. Şablonda tanımlanmış bir Microsoft.Storage/storageAccounts kaynak vardır. Şablonu, şablon başvurusu ile karşılaştırın. Şablonu özelleştirmeden önce temel bilgilere ulaşmak yararlı olur.

  5. Dosyayı yerel bilgisayarınıza azuredeploy.json olarak kaydetmek için Dosya>Farklı Kaydet'i seçin.

Şablonu düzenleme

Var olan şablon, temel şifrelenmemiş depolama hesabı oluşturur. Şablonu özelleştirerek üç depolama hesabı oluşturacaksınız.

Visual Studio Code’dan aşağıdaki dört değişikliği yapın:

Azure Resource Manager birden çok örnek oluşturma ile Visual Studio Code ekran görüntüsü.

  1. Depolama hesabı kaynak tanımına bir copy öğesi ekleyin. öğesinde copy , yineleme sayısını ve bu döngü için bir değişken belirtirsiniz. Sayı değeri pozitif bir tamsayı olmalıdır ve 800’ü aşamaz.

    "copy": {
      "name": "storageCopy",
      "count": 3
    },
    
  2. copyIndex() İşlevi, döngüde geçerli yinelemeyi döndürür. Dizini ad ön eki olarak kullanırsınız. copyIndex() sıfır tabanlıdır. Dizin değerini kaydırmak için işlevde copyIndex() bir değer geçirebilirsiniz. Örneğin, copyIndex(1).

    "name": "[format('{0}storage{1}', copyIndex(), uniqueString(resourceGroup().id))]",
    
    
    
  3. storageAccountName Artık kullanılmadığından parametre tanımını silin.

  4. outputs öğesini silin. Artık gerekli değil.

  5. metadata öğesini silin.

Tamamlanan şablon aşağıdaki gibi görünür:

{
  "$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": [
        "Premium_LRS",
        "Premium_ZRS",
        "Standard_GRS",
        "Standard_GZRS",
        "Standard_LRS",
        "Standard_RAGRS",
        "Standard_RAGZRS",
        "Standard_ZRS"
      ],
      "metadata": {
        "description": "Storage Account type"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for the storage account."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-06-01",
      "name": "[format('{0}storage{1}', copyIndex(), uniqueString(resourceGroup().id))]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageAccountType')]"
      },
      "kind": "StorageV2",
      "copy": {
        "name": "storageCopy",
        "count": 3
      },
      "properties": {}
    }
  ]
}

Değişiklikleri kaydedin.

Birden çok örnek oluşturma hakkında daha fazla bilgi için bkz. ARM şablonlarında kaynak yinelemesi

Şablonu dağıtma

  1. Azure Cloud Shell oturum açma

  2. Sol üst köşedeki PowerShell'i veya Bash'i (CLI için) seçerek tercih ettiğiniz ortamı seçin. Geçiş yaptığınızda kabuğun yeniden başlatılması gerekir.

    Dosyayı karşıya Azure portal Cloud Shell

  3. Dosyaları karşıya yükle/indir'i seçin ve sonra da Karşıya Yükle'yi seçin. Önceki ekran görüntüsüne bakın. Önceki bölümde kaydettiğiniz dosyayı seçin. Dosyayı karşıya yükledikten sonra, dosyanın başarıyla karşıya yüklendiğini doğrulamak için komutunu ve cat komutunu kullanabilirsinizls.

  4. Cloud Shell aşağıdaki komutları çalıştırın. PowerShell kodunu veya CLI kodunu gösteren sekmeyi seçin.

    echo "Enter a project name that is used to generate resource group name:" &&
    read projectName &&
    echo "Enter the location (i.e. centralus):" &&
    read location &&
    resourceGroupName="${projectName}rg" &&
    az group create --name $resourceGroupName --location "$location" &&
    az deployment group create --resource-group $resourceGroupName --template-file "$HOME/azuredeploy.json"
    

Başarılı bir şablon dağıtımından sonra, belirtilen kaynak grubunda oluşturulan üç depolama hesabını görüntüleyebilirsiniz. Depolama hesabı adlarını, şablondaki ad tanımıyla karşılaştırın.

echo "Enter a project name that is used to generate resource group name:" &&
read projectName &&
resourceGroupName="${projectName}rg" &&
az storage account list --resource-group $resourceGroupName &&
echo "Press [ENTER] to continue ..."

Kaynakları temizleme

Artık Azure kaynakları gerekli değilse, kaynak grubunu silerek dağıttığınız kaynakları temizleyin.

  1. Azure portal soldaki menüden Kaynak grubu'na tıklayın.
  2. Ada göre filtrele alanına kaynak grubu adını girin.
  3. Kaynak grubu adını seçin. Kaynak grubunda toplam üç kaynak görürsünüz.
  4. Üstteki menüden Kaynak grubunu sil'i seçin.

Sonraki adımlar

Bu öğreticide, birden çok depolama hesabı örneği oluşturmayı öğrendiniz. Bir sonraki öğreticide, birden fazla kaynağa ve birden çok kaynak türüne sahip bir şablon geliştireceksiniz. Bazı kaynakların bağımlı kaynakları vardır.