使用 Azure Resource Manager 範本變數重複使用運算式

已完成

在先前的情節中,您決定使用由數個 Azure Resource Manager (ARM) 範本函式所組成的運算式,建立 Azure 儲存體帳戶的唯一名稱。 這種靈活性可確保所有客戶都能使用 ARM 範本進行其部署。 但您會注意到,在數個地方加入此運算式,會造成維護此範本的問題。 您決定將變數用於儲存體帳戶名稱運算式,讓您可以在同一個位置定義運算式,並在整個範本中加以重複使用。

什麼是 ARM 範本變數?

ARM 範本變數是保存值的建構,以供稍後使用。 當需要在範本中的數個位置指定值時,最好使用變數。 只要在範本中使用變數,Resource Manager 就會以已解析的值來加以取代。

例如,您有一個定義資源位置值的運算式。 您在範本中定義的數個資源都需要位置。 您可以建立一個變數來存放位置運算式,然後在需要位置時使用該變數。

使用 ARM 範本變數的優點

ARM 範本變數可讓您撰寫一次運算式,然後在數個位置中加以使用。 此外,您將在同一個位置維護運算式,而且範本會更容易閱讀。

如何使用 ARM 範本變數?

ARM 範本變數是在範本的 variables: {} 區段中定義。 例如,下列是您在上一個單元中定義的儲存體帳戶名稱運算式。 運算式現在會定義 storageName 變數的值。

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

然後,您可在範本中需要儲存體帳戶名稱的任何地方,使用該變數:

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

ARM 範本變數的建議做法

範本變數以駝峰式大小寫來指定。 它們最適合用於您需要指定一次以上的值,特別是當該值為複雜運算式時。

請勿在範本的 variables 區段中使用 reference 函式。 reference 函式會在執行階段解析,而當剖析範本時,會解析變數。 此外,請勿將變數用於資源上的 apiVersion。 API 版本會決定資源的結構描述,而且如果不變更資源的屬性,通常就無法變更版本。