Mempertahankan beberapa penyebaran Azure menggunakan tag dan file parameter templat Azure Resource Manager

Selesai

Ada dua fitur templat Azure Resource Manager (ARM) yang ingin Anda gunakan saat Anda menyebarkan ke lebih dari satu lingkungan Azure. Fitur-fitur tersebut adalah tag sumber daya dan file parameter templat ARM.

Saat menambahkan lebih banyak sumber daya ke lingkungan, Anda dengan cepat menemukan bahwa Anda memerlukan cara untuk mengidentifikasi tujuan sumber daya ini. Sumber daya memiliki atribut tags: untuk tujuan tersebut. Saat Anda menyebarkan ke lebih banyak lingkungan, Anda memerlukan cara yang efisien untuk melacak parameter input. Templat ARM dapat menggunakan file parameter untuk mengelola parameter untuk setiap lingkungan penyebaran.

Apa itu tag sumber daya Azure?

Anda dapat menandai sumber daya untuk menambahkan nilai yang membantu dalam mengidentifikasi kegunaannya. Misalnya, Anda dapat menambahkan tag yang mencantumkan lingkungan dan proyek tempat sumber daya berada. Atau Anda dapat menambahkan tag untuk mengidentifikasi pusat biaya atau tim yang memiliki sumber daya. Tambahkan nilai yang dapat dipahami oleh organisasi.

Nilai tag ditampilkan di halaman gambaran umum untuk sumber daya Azure dan dalam laporan biaya.

Bagaimana cara membuat tag sumber daya Azure?

Setiap sumber daya memiliki atribut tags:. Sejauh ini, Anda telah menggunakan displayName default sebagai tag dari akun penyimpanan Anda:

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

Untuk membuat atribut ini lebih berfungsi, Anda dapat menentukan parameter yang memiliki lebih banyak informasi dan menggunakan parameter tersebut pada atribut tags:. Contohnya, Anda dapat membuat parameter untuk menyimpan objek bernama resourceTags:

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

Di sini, Anda membuat objek untuk menyimpan nilai untuk nama lingkungan dan nama proyek, tetapi Anda dapat menentukan apa pun yang Anda inginkan.

Kemudian, Anda dapat menggunakan parameter tersebut untuk sumber daya apa pun yang untuk lingkungan Dev dan proyek Inventori; misalnya, akun penyimpanan Anda.

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

Apa itu file parameter templat ARM?

File parameter templat ARM menyimpan nilai yang diteruskan ke templat ARM saat templat dijalankan. Dengan menggunakan file parameter untuk setiap lingkungan tempat templat ARM disebarkan, Anda memastikan bahwa parameter yang benar diatur untuk lingkungan tertentu tersebut. Pastikan juga bahwa Anda bisa melacak riwayat dan pemeliharaan nilai-nilai parameter tersebut dalam kontrol sumber.

Bagaimana cara menggunakan file parameter templat ARM?

File parameter templat ARM adalah file JSON yang menyimpan nilai parameter. Misalnya, untuk parameter yang Anda gunakan dalam templat ARM sejauh ini, Anda dapat membuat file parameter templat sebagai berikut:

{
    "$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"
        }
      }
    }
  }

Kemudian Anda dapat membuat file yang serupa dengan file ini untuk setiap lingkungan. Contohnya, file-file berikut mungkin bernama azuredeploy.parameters.dev.json dan azuredeploy.parameters.prod.json dan menyimpan nilai yang berbeda untuk parameter.

Untuk menyebarkan templat ARM dengan menggunakan file parameter, tentukan jalur ke file parameter dalam perintah penyebaran. Di Azure CLI, Anda menggunakan --parameters {path to parameter file}. Di PowerShell, Anda menggunakan -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