Alıştırma - Azure Resource Manager değişkenlerini kullanarak ifadeleri depolama

Tamamlandı

Bu alıştırmada Azure depolama hesabı adı ifadenizi bir Azure Resource Manager (ARM) şablonu değişkeninde depolayacaksınız. Ardından, oluşturulacak depolama hesabının adını belirtmek için bu değişkeni kullanırsınız.

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

Değişken ekleme

Depolama hesabı adı ifadenizi şablonda tek bir yerde depolamak için bir değişken ekleyin.

  1. Visual Studio Code'daki azuredeploy.json dosyasında, imlecinizi değişkenler bloğundaki "variables":{} ayraçların arasına getirin ve Enter tuşuna basın.

  2. Ayraçların içine var yazın. İlgili kod parçacıklarının listesini görürsünüz. arm-variable öğesini seçin:

    Screenshot of Visual Studio Code that shows the snippets for Azure Resource Manager template variables.

  3. Değişkenler bölümünüz şu koda benzer:

    "variables": {"variable1": "value"},
    
  4. Değişkenin adını unique Depolama Name olarak değiştirin ve değerini "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]" olarak değiştirin. Değişkenler bölümünüz şu koda benzer:

    "variables": {
        "uniqueStorageName": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]"
      },
    

    İfadede değişmez değer yerine storagePrefix parametresini kullandığınıza dikkat edin. Aksi takdirde bu ifade, bir önceki ünitede incelediğiniz ifadenin aynısı olur.

  5. Değişkeni kaynaklar bölümünde kullanın. name: ve displayName özniteliklerinin değerini "[variables('uniqueStorageName')]" olarak değiştirin

  6. Dosyanın tamamı şu örneğe benzer:

    {
        "$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"
                ]
            }
       },
        "functions": [],
        "variables": {
        "uniqueStorageName": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]"
      },
        "resources": [{
            "name": "[variables('uniqueStorageName')]",
            "type": "Microsoft.Storage/storageAccounts",
            "apiVersion": "2019-06-01",
            "tags": {
                "displayName": "[variables('uniqueStorageName')]"
            },
            "location": "[resourceGroup().location]",
            "kind": "StorageV2",
            "sku": {
             "name": "[parameters('storageSKU')]"
           }
        }],
        "outputs": {}
    }
    

İsterseniz şablonu dağıtabilirsiniz

Güncelleştirilmiş şablonda dağıttığınız kaynakta herhangi bir değişiklik olmadığından, bu şablonun dağıtılması Azure ortamınızda herhangi bir değişiklik yapmaz.

Şablonu dağıtarak başarılı olup olmadığını görmek isterseniz aşağıdaki Azure CLI komutlarını kullanın. Son dağıtımda kullandığınız storagePrefix parametresi değerini kullandığınızdan emin olun.

templateFile="azuredeploy.json"
today=$(date +"%d-%b-%Y")
DeploymentName="addVariable-"$today

az deployment group create \
  --name $DeploymentName \
  --template-file $templateFile \
  --parameters storagePrefix={your-Prefix}

Şablonu dağıtarak başarılı olup olmadığını görmek isterseniz aşağıdaki Azure PowerShell komutlarını kullanın. Son dağıtımda kullandığınız storagePrefix parametresi değerini kullandığınızdan emin olun.

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