Alıştırma - Azure Resource Manager etiketlerini ve parametre dosyalarını kullanma

Tamamlandı

Bu alıştırmada, Microsoft Azure kaynaklarınızı düzenlemenize ve izlemenize yardımcı olacak etiketler eklersiniz. Ayrıca, her dağıtım için farklı parametre yapılandırmalarına olanak sağlamak için de Azure Resource Manager (ARM) şablonu parametre dosyası da kullanırsınız.

Bu alıştırmada Visual Studio Code için Azure Resource Manager Araçları kullanılmaktadır. Visual Studio Code’da bu uzantıyı yüklediğinizden emin olun.

Kaynak dağıtım ortamını ve projeyi izlemek için etiket oluşturma

İlk olarak şablonunuzda kaynak etiketi olarak kullanacağınız bir parametre oluşturacaksınız.

  1. Visual Studio Code'daki azuredeploy.json dosyasında, imlecinizi parametrenin kapanış ayracından storageSKU sonra getirin. Virgül ekleyin ve Enter tuşuna basın.

  2. par yazın. İlgili kod parçacıklarının listesini görürsünüz.

  3. arm-param seçeneğini belirleyin. Bu işlem sonucunda şablona genel bir parametre eklendiğini unutmayın. Şu koda benzer:

    "parameter1": {
        "type": "string",
        "metadata": {
            "description": "description"
        }
    
  4. parameter1 öğesini resourceTags olarak değiştirin ve "type": değerini object yapın. Parametrelerin string, secureString, int, bool, object, secureObject ve array veri türlerine sahip olabileceğini unutmayın. Bu modülün özet bölümünde, bu parametre türlerinin örnek söz dizimlerini gösteren sayfaya bağlantı verilmiştir.

  5. defaultValue: adlı bir öznitelik ekleyin ve değerini {"Environment": "Dev", "Project": "Tutorial"}olarak ayarlayın.

    Parametre bloğu şu kod gibi görünmelidir:

    "parameters": {
        "storagePrefix": {
            "type": "string",
            "minLength": 3,
            "maxLength": 11
        },
        "storageSKU": {
            "type": "string",
            "defaultValue": "Standard_LRS",
            "allowedValues": [
                "Standard_LRS",
                "Standard_GRS",
                "Standard_RAGRS",
                "Standard_ZRS",
                "Premium_LRS",
                "Premium_ZRS",
                "Standard_GZRS",
                "Standard_RAGZRS"
            ]
        },
        "resourceTags": {
        "type": "object",
        "defaultValue": {
            "Environment": "Dev",
            "Project": "Tutorial"
            }
        }
    },
    
  6. Bu parametreyi kullanarak depolama hesabı kaynağınızı etiketleyin. Kaynak tanımındaki tags: özniteliğini değiştirin:

    "tags": "[parameters('resourceTags')]",
    
  7. Dosyanız şu dosya gibi görünmelidir:

    {
        "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
           "storagePrefix": {
               "type": "string",
               "minLength": 3,
               "maxLength": 11
           },
            "storageSKU": {
                "type": "string",
                "defaultValue": "Standard_LRS",
                "allowedValues": [
                    "Standard_LRS",
                    "Standard_GRS",
                    "Standard_RAGRS",
                    "Standard_ZRS",
                    "Premium_LRS",
                    "Premium_ZRS",
                    "Standard_GZRS",
                    "Standard_RAGZRS"
                ]
            },
            "resourceTags": {
            "type": "object",
            "defaultValue": {
                "Environment": "Dev",
                "Project": "Tutorial"
            }
        }
       },
        "functions": [],
        "variables": {
        "uniqueStorageName": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]"
      },
        "resources": [{
            "name": "[variables('uniqueStorageName')]",
            "type": "Microsoft.Storage/storageAccounts",
            "apiVersion": "2019-06-01",
            "tags": "[parameters('resourceTags')]",
            "location": "[resourceGroup().location]",
            "kind": "StorageV2",
            "sku": {
             "name": "[parameters('storageSKU')]"
           }
        }],
        "outputs": {}
    }
    
  8. Dosyayı kaydedin.

Etiketlerini güncelleştirdiğiniz ARM şablonunu dağıtma

  • Güncelleştirdiğiniz ARM şablonunu Azure'a dağıtın. Daha önce kullandığınız storagePrefix değerini kullandığınızdan emin olun.

    templateFile="azuredeploy.json"
    today=$(date +"%d-%b-%Y")
    DeploymentName="updateTags-"$today
    
    az deployment group create \
        --name $DeploymentName \
        --template-file $templateFile \
        --parameters storagePrefix={your-Prefix} storageSKU=Standard_LRS
    
  • Güncelleştirdiğiniz ARM şablonunu Azure'a dağıtın. Daha önce kullandığınız storagePrefix değerini kullandığınızdan emin olun.

    $templateFile = "azuredeploy.json"
    $today=Get-Date -Format "MM-dd-yyyy"
    $deploymentName="updateTags-"+"$today"
    New-AzResourceGroupDeployment `
      -Name $deploymentName `
      -TemplateFile $templateFile `
      -storagePrefix {your storagePrefix} `
      -storageSKU Standard_LRS
    

Yeni etiketlerin dağıtımda olduğunu doğrulama

  1. Azure'da [sandbox resource group name] kaynak grubunu ve ardından dağıtılan depolama hesabını seçin.

  2. Ortam : Geliştirme ve Proje : Öğretici etiketlerine dikkat edin:

    Screenshot of the Azure portal that shows the selected tags in the Storage account Overview page.

Parametre dosyası kullanma

Şu anda bu şablonu her dağıttığınızda doldurmanız gereken üç parametre mevcut. Şablon kullanıcıları, parametre değerlerini içeren bir dosya oluşturabilir. Burada şablonunuzla birlikte kullanacağınız bir parametre dosyası oluşturacaksınız.

  1. Visual Studio Code’da başka bir dosya oluşturun. Bu dosyaya azuredeploy.parameters.dev.json adını verin.

  2. Bu dosyaya development ortamında şablona girilmesini istediğiniz şablon parametrelerinin değerlerini ekleyeceksiniz. Dağıtımın değişiklik yaptığını görmek için bir etiket değerini değiştirin. Örneğin, projectName öğesini Learn olarak değiştirebilirsiniz:

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "storagePrefix": {
          "value": "{unique-prefix}"
        },
        "storageSKU": {
          "value": "Standard_LRS"
        },
        "resourceTags": {
          "value": {
            "Environment": "Dev",
            "Project": "Learn"
          }
        }
      }
    }
    
  3. {unique-prefix} öğesi yerine benzersiz ön ekinizi yazdığınızdan emin olun.

  4. Dosyayı kaydedin.

Parametre dosyasıyla şablonu dağıtma

Bu bölümde ARM şablonunu dağıtırken kullanılmasını istediğiniz parametre dosyasını belirteceksiniz.

  1. Visual Studio Code terminalinde şu Azure CLI komutlarını çalıştırın:

    templateFile="azuredeploy.json"
    devParameterFile="azuredeploy.parameters.dev.json"
    today=$(date +"%d-%b-%Y")
    DeploymentName="addParameterFile-"$today
    
    az deployment group create \
      --name $DeploymentName \
      --template-file $templateFile \
      --parameters $devParameterFile
    
  2. Dağıtımın başarılı olup olmadığını ve etiket değerinin değiştirilip değiştirilmediğini görmek için Azure’a bakın:

    Screenshot of the Azure portal that shows the updated tag values in the Storage account Overview page.

  3. Sınama olarak, üretim ortamı için bir parametre dosyası oluşturun. Üretim ortamına dağıtmak için komutunu çalıştırdığınızda parametre dosyası yolunu değiştirin.

  1. Visual Studio Code terminalinde şu Azure PowerShell komutlarını çalıştırın:

    $templateFile = "azuredeploy.json"
    $parameterFile="azuredeploy.parameters.dev.json"
    $today=Get-Date -Format "MM-dd-yyyy"
    $deploymentName="addParameterFile-"+"$today"
    New-AzResourceGroupDeployment `
      -Name $deploymentName `
      -TemplateFile $templateFile `
      -TemplateParameterFile $parameterFile
    
  2. Dağıtımın başarılı olup olmadığını ve etiket değerinin değiştirilip değiştirilmediğini görmek için Azure’a bakın:

    Screenshot of the Azure portal that shows the updated tag values in the Storage account Overview page.

  3. Sınama olarak, üretim ortamı için bir parametre dosyası oluşturun. Üretim ortamına dağıtmak için komutunu çalıştırdığınızda parametre dosyası yolunu değiştirin.