Menggunakan kembali ekspresi dengan menggunakan variabel templat Azure Resource Manager

Selesai

Dalam skenario sebelumnya, Anda memutuskan untuk menggunakan ekspresi yang terdiri dari beberapa fungsi templat Azure Resource Manager (ARM) untuk membuat nama unik untuk akun penyimpanan Azure. Fleksibilitas ini memastikan bahwa semua pelanggan Anda dapat menggunakan templat ARM untuk penyebaran mereka. Tetapi Anda melihat bahwa menambahkan ekspresi ini di beberapa tempat adalah masalah untuk mempertahankan templat. Anda memutuskan untuk menggunakan variabel untuk ekspresi nama akun penyimpanan agar dapat menentukan ekspresi pada satu tempat dan menggunakannya kembali di seluruh templat lainnya.

Apa itu variabel templat ARM?

Variabel templat ARM adalah konstruksi yang menyimpan nilai untuk digunakan nanti. Penggunaan terbaik variabel adalah saat suatu nilai perlu ditentukan di beberapa tempat dalam suatu templat. Kapan pun variabel digunakan dalam templat, Resource Manager menggantinya dengan nilai yang ditentukan.

Contohnya, Anda memiliki ekspresi yang menentukan suatu nilai untuk lokasi sumber daya. Beberapa sumber daya yang Anda tentukan dalam templat Anda memerlukan lokasi. Anda dapat membuat variabel untuk menyimpan ekspresi lokasi dan kemudian menggunakan variabel di mana pun lokasi diperlukan.

Keuntungan menggunakan variabel templat ARM

Variabel templat ARM memungkinkan Anda menuliskan ekspresi satu kali kemudian menggunakannya di beberapa tempat. Selain itu, pemeliharaan ekspresi berada di satu tempat, dengan templat yang lebih mudah dibaca.

Bagaimana cara menggunakan variabel templat ARM?

Variabel templat ARM ditentukan pada bagian variables: {} dari suatu templat. Contohnya, berikut ekspresi untuk nama akun penyimpanan yang Anda tentukan pada unit sebelumnya. Saat ini ekspresi ini menentukan nilai untuk variabel storageName.

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

Kemudian gunakan variabel pada templat kapan pun Anda membutuhkan nama akun penyimpanan:

"resources": [
  {
    "type": "Microsoft.Storage/storageAccounts",
    "name": "[variables('storageName')]",
    ...
  }
]

Rekomendasi untuk variabel templat ARM

Variabel templat ditentukan dalam kata kapital. Penggunaan terbaik variabel templat adalah untuk nilai yang perlu ditentukan lebih dari satu kali, khususnya jika nilai tersebut adalah ekspresi yang rumit.

Jangan gunakan fungsi reference pada bagian variabel suatu templat. Fungsi reference diselesaikan saat runtime, dan variabel diselesaikan saat templat dipilah. Selain itu, jangan gunakan variabel untuk apiVersion pada sumber daya. Versi API menentukan skema sumber daya, dan seringkali tidak bisa mengubah versinya tanpa mengubah properti sumber daya tersebut.