Azure Resource Manager şablonu etiketlerini ve parametre dosyalarını kullanarak birden çok Azure dağıtımının bakımını yapma

Tamamlandı

Birden fazla Azure ortamına dağıtım yaparken kullanmak istediğiniz iki Azure Resource Manager (ARM) şablonu özelliği vardır. Bunlar kaynak etiketleri ve ARM şablonu parametre dosyaları özellikleridir.

Ortamlarınıza daha fazla kaynak ekledikçe, bu kaynakların amacını belirlemek için bir yönteme ihtiyacınız olduğunu hemen fark edebilirsiniz. Bu amaç için kaynaklarda bir tags: özniteliği bulunur. Daha fazla ortam dağıttıkça, giriş parametrelerini izlemek için verimli bir yönteme ihtiyacınız vardır. ARM şablonları, parametre dosyalarını kullanarak her bir dağıtım ortamına yönelik parametreleri yönetebilir.

Azure kaynağı etiketi nedir?

Kaynakların kullanım amacını belirlemenize yardımcı olacak değerler eklemek için kaynakları etiketleyebilirsiniz. Örneğin, bir kaynağın ait olduğu ortamı ve projeyi listeleyen etiketler ekleyebilirsiniz. Alternatif olarak, maliyet merkezini veya kaynağın sahibi olan ekibi tanımlayan etiketler de ekleyebilirsiniz. Kuruluşunuz için anlamlı olan tüm değerleri kullanabilirsiniz.

Etiket değeri, Azure kaynağının genel bakış sayfasında ve maliyet raporlarında görüntülenir.

Azure kaynağı etiketi nasıl oluşturulur?

Her kaynağın bir tags: özniteliği vardır. Şimdiye kadar depolama hesabınızın etiketi için varsayılan displayName özniteliğini kullanıyordunuz:

"tags": {
          "displayName": "[parameters('storageName')]"
        },

Bu özniteliği daha kullanışlı hale getirmek için daha fazla bilgi içeren bir parametre tanımlayabilir ve ardından bu parametreyi tags: özniteliğinde kullanabilirsiniz. Örneğin resourceTags adlı nesneyi tutacak bir parametre oluşturabilirsiniz:

"resourceTags": {
    "type": "object",
    "defaultValue": {
        "Environment": "Dev",
        "Project": "Inventory"
        }
    }

Burada, ortam adı ve proje adı değerlerini tutmak için bir nesne oluşturdunuz, ancak istediğiniz her şeyi tanımlayabilirsiniz.

Ardından bu parametreyi Geliştirme ortamı ve Stok projesi için olan tüm kaynaklar için kullanabilirsiniz; örneğin, depolama hesabınız.

"resources": [{
        "name": "[variables('uniqueStorageName')]",
        "type": "Microsoft.Storage/storageAccounts",
        "apiVersion": "2019-06-01",
        "tags": "[parameters('resourceTags')]",
        ...
    }],

ARM şablonu parametre dosyası nedir?

ARM şablonu parametre dosyası, şablon yürütülürken ARM şablonuna geçirilen değerleri tutar. ARM şablonunun dağıtıldığı her ortam için bir parametre dosyası kullanarak, ilgili ortam için doğru parametrelerin ayarlandığından emin olursunuz. Ayrıca bu parametre değerlerinin geçmişini ve bakımını da kaynak denetiminde izleyebilirsiniz.

ARM şablonu parametre dosyaları nasıl kullanılır?

ARM şablonu parametre dosyaları, parametre değerlerinin bulunduğu JSON dosyalarıdır. Örneğin, ARM şablonunda şu ana kadar kullandığınız parametreler için aşağıdaki gibi bir şablon parametre dosyası oluşturabilirsiniz:

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
      "storagePrefix": {
        "value": "storage"
      },
      "storageSKU": {
        "value": "Standard_LRS"
      },
      "resourceTags": {
        "value": {
          "Environment": "Dev",
          "Project": "Learn"
        }
      }
    }
  }

Ardından her ortam için bu dosyaya benzer bir dosya oluşturabilirsiniz. Örneğin, bu dosyalar azuredeploy.parameters.dev.json ve azuredeploy.parameters.prod.json olarak adlandırılabilir ve parametreler için farklı değerler barındırabilir.

Arm şablonunu parametre dosyası kullanarak dağıtmak için dağıtım komutunda parametre dosyasının yolunu belirtin. Azure CLI'da kullanırsınız --parameters {path to parameter file}. PowerShell'de kullanırsınız -TemplateParameterFile {path to parameter file}.

templateFile="{path-to-the-template-file}"
devParameterFile="{path-to-azuredeploy.parameters.dev.json}"
az group create \
  --name myResourceGroupDev \
  --location "East US"
az deployment group create \
  --name devenvironment \
  --resource-group myResourceGroupDev \
  --template-file $templateFile \
  --parameters $devParameterFile