Alıştırma - Yinelemeyi azaltmak için copy öğesini kullanma

Tamamlandı

Bu son alıştırmada depolama hesaplarıyla çalışmaya devam edeceksiniz. Bu kez copy yapısını kullanarak tek bir tanımdan birden çok depolama hesabı sağlayacaksınız.

Copy yapısı, tek ve merkezi bir konum sunduğundan gereksinimleriniz değiştiğinde yalnızca tek bir noktayı güncelleştirmeniz yeterli olur.

ARM şablonunu oluşturma

Bu aşamada depolama hesabı kaynağını tanımlayan bir Azure Resource Manager (ARM) şablonu oluşturacaksınız. Şablonda aynı kaynaktan belirtilen sayıda kopya oluşturmak için copy yapısını kullanacaksınız.

  1. Visual Studio Code'da azuredeploy.json dosyasının bulunduğu dizinde copy.json adlı bir dosya oluşturun.

  2. Aşağıdaki içeriği copy.json dosyasına ekleyin:

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "storageCount": {
          "type": "int",
          "defaultValue": 1,
          "metadata": {
            "description": "the number of storage accounts copies being deployed"
          }
        },
        "storageAccountName": {
          "type": "string",
          "defaultValue": "storage",
          "metadata": {
            "description": "the name of the storage account"
          }
        }
      },
      "functions": [],
      "variables": {},
      "resources": [
        {
          "name": "[concat(parameters('storageAccountName'), copyIndex())]",
          "type": "Microsoft.Storage/storageAccounts",
          "apiVersion": "2019-06-01",
          "tags": {
            "displayName": "storageaccount1"
          },
          "location": "[resourceGroup().location]",
          "kind": "StorageV2",
          "sku": {
            "name": "Premium_LRS",
            "tier": "Premium"
          },
          "copy": {
            "name": "storagecopy",
            "count": "[parameters('storageCount')]"
          }
        }
      ],
      "outputs": {}
    }
    

storageCount parametresi oluşturulacak kopya sayısını belirler.

resources bölümünde belirtilen depolama hesabı kaynağına dikkat edin. Depolama hesabı adının benzersiz olması için şablonda copyIndex() ile depolama hesabı adının sonuna geçerli dizin eklenmektedir.

copy bölümü, oluşturulacak kopya sayısını storageCount parametresinden alır.

Şablonu dağıtma

Bu adımda daha önce yaptığınız gibi şablonu dağıtacaksınız. Dağıtım adımında iki benzer depolama hesabı sağlanır.

  1. Depolama hesabı adını tutan bir PowerShell değişkeni oluşturun.

    $STORAGE_ACCT_NAME="tailwindsa" + (Get-Random -Count 1)
    
  2. Şablonu dağıtmak için aşağıdaki New-AzResourceGroupDeployment komutunu çalıştırın:

    New-AzResourceGroupDeployment `
    -TemplateFile "./copy.json" `
    -storageAccountName $STORAGE_ACCT_NAME `
    -storageCount 2
    

    Burada iki depolama hesabı sağlamak için storageCount değerini 2 olarak ayarlayacaksınız.

Dağıtımı doğrulama

Çıkışta iki depolama hesabının oluşturulduğu gösterilse de burada Get-AzResource komutunu çalıştırarak çıkış kaynaklarına odaklanacaksınız.

Kaynakların dağıtıldığından emin olmak için aşağıdaki Get-AzResource komutunu çalıştırın:

Get-AzResource -Name tailwindsa* -ResourceGroupName <rgn>resource group name</rgn> | Select-Object -Property Name,ResourceId

tailwindsa* bağımsız değişkeni, yalnızca kaynaklara verdiğiniz ad ön ekiyle eşleşen tanımlayıcıların gösterilmesini sağlar.

Çıkışınız aşağıdakine benzer:

Name                 ResourceId
----                 ----------
tailwindsa1852777810 /subscriptions/11112222-3333-4444-5555-1111222233334444/resourceGroups/<rgn>resoure group</rgn>/providers/Microsoft.Storage/storageAccount…
tailwindsa1852777811 /subscriptions/11112222-3333-4444-5555-1111222233334444/resourceGroups/<rgn>resoure group</rgn>/providers/Microsoft.Storage/storageAccount…

Bu örnekte:

  • tailwindsa185277781 ("tailwindsa" + Get-Random -Count 1), depolama hesabı için oluşturulan temel addır.
  • tailwindsa1852777810 (temel ad artı "0"), ilk depolama hesabıdır.
  • tailwindsa1852777811 (temel ad artı "1"), ilk depolama hesabıdır.

Tebrikler! Performans katmanı gibi gereksinimleriniz değiştikçe kaynak tanımlarınızı tek bir noktadan değiştirebilirsiniz.

Temizleme

Bu modülle işiniz bittiğinde korumalı alan kaynaklarınızı otomatik olarak temizler.

Kendi aboneliğinizde çalışırken, projenin sonunda oluşturduğunuz kaynaklara hala ihtiyacınız olup olmadığını belirlemek iyi bir fikirdir. Çalışır durumda bıraktığınız kaynaklar size pahalıya mal olabilir. Kaynakları teker teker silebilir veya tüm kaynak grubunu silerek kaynak kümesinin tamamını kaldırabilirsiniz.

ARM şablonunu oluşturma

Bu aşamada depolama hesabı kaynağını tanımlayan bir Azure Resource Manager (ARM) şablonu oluşturacaksınız. Şablonda aynı kaynaktan belirtilen sayıda kopya oluşturmak için copy yapısını kullanacaksınız.

  1. Visual Studio Code'da azuredeploy.json dosyasının bulunduğu dizinde copy.json adlı bir dosya oluşturun.

  2. Aşağıdaki içeriği copy.json dosyasına ekleyin:

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "storageCount": {
          "type": "int",
          "defaultValue": 1,
          "metadata": {
            "description": "the number of storage accounts being deployed"
          }
        },
        "storageAccountName": {
          "type": "string",
          "defaultValue": "storage",
          "metadata": {
            "description": "the name of the storage account"
          }
        }
      },
      "functions": [],
      "variables": {},
      "resources": [
        {
          "name": "[concat(parameters('storageAccountName'), copyIndex())]",
          "type": "Microsoft.Storage/storageAccounts",
          "apiVersion": "2019-06-01",
          "tags": {
            "displayName": "storageaccount1"
          },
          "location": "[resourceGroup().location]",
          "kind": "StorageV2",
          "sku": {
            "name": "Premium_LRS",
            "tier": "Premium"
          },
          "copy": {
            "name": "storagecopy",
            "count": "[parameters('storageCount')]"
          }
        }
      ],
      "outputs": {}
    }
    

storageCount parametresi oluşturulacak kopya sayısını belirler.

resources bölümünde belirtilen depolama hesabı kaynağına dikkat edin. Depolama hesabı adının benzersiz olması için şablonda copyIndex() ile depolama hesabı adının sonuna geçerli dizin eklenmektedir.

copy bölümü, oluşturulacak kopya sayısını storageCount parametresinden alır.

Şablonu dağıtma

Bu adımda daha önce yaptığınız gibi şablonu dağıtacaksınız. Dağıtım adımında iki benzer depolama hesabı sağlanır.

  1. Depolama hesabı adını tutan bir Bash değişkeni oluşturun.

    STORAGE_ACCT_NAME=tailwindsa$RANDOM
    
  2. Şablonu dağıtmak için aşağıdaki az deployment group create komutunu çalıştırın:

    az deployment group create \
      --template-file copy.json \
      --parameters storageAccountName=$STORAGE_ACCT_NAME storageCount=2
    

    Burada iki depolama hesabı sağlamak için storageCount değerini 2 olarak ayarlayacaksınız.

Dağıtımı doğrulama

Çıkışta iki depolama hesabının oluşturulduğu gösterilse de burada az deployment group show komutunu çalıştırarak çıkış kaynaklarına odaklanacaksınız.

Dağıtımla ilgili ayrıntıları görüntülemek için aşağıdaki az deployment group show komutunu çalıştırın:

az deployment group show \
  --name copy \
  --query "properties.outputResources[].id" \
  --output tsv

--query bağımsız değişkeni yalnızca çıkış kaynaklarındaki tanımlayıcıların gösterilmesini sağlar.

Çıkışınız aşağıdakine benzer:

/subscriptions/4b328dc1-56b1-4031-89b0-c0898204f8a5/resourceGroups/<rgn>resource group name</rgn>/providers/Microsoft.Storage/storageAccounts/tailwindsa9820
/subscriptions/4b328dc1-56b1-4031-89b0-c0898204f8a5/resourceGroups/<rgn>resource group name</rgn>/providers/Microsoft.Storage/storageAccounts/tailwindsa9821

Bu örnekte:

  • tailwindsa982 (tailwindsa$RANDOM), depolama hesabı için oluşturulan temel addır.
  • tailwindsa9820 (temel ad artı "0"), ilk depolama hesabıdır.
  • tailwindsa9821 (temel ad artı "1"), ikinci depolama hesabıdır.

Tebrikler! Performans katmanı gibi gereksinimleriniz değiştikçe kaynak tanımlarınızı tek bir noktadan değiştirebilirsiniz.

Temizleme

Bu modülle işiniz bittiğinde korumalı alan kaynaklarınızı otomatik olarak temizler.

Kendi aboneliğinizde çalışırken, projenin sonunda oluşturduğunuz kaynaklara hala ihtiyacınız olup olmadığını belirlemek iyi bir fikirdir. Çalışır durumda bıraktığınız kaynaklar size pahalıya mal olabilir. Kaynakları teker teker silebilir veya tüm kaynak grubunu silerek kaynak kümesinin tamamını kaldırabilirsiniz.