了解 ARM 範本的結構和語法 \(部分機器翻譯\)

本文說明 Azure Resource Manager 範本 (ARM 範本) 的結構。 它會呈現範本的不同區段,以及這些區段中可用的屬性。

本文針對熟悉 ARM 範本的使用者。 提供範本結構的詳細資訊。 如需可引導您完成建立範本程序的逐步教學課程,請參閱教學課程:建立及部署您的第一個 ARM 範本。 若要透過一組引導式的 Learn 模組來了解 ARM 範本,請參閱使用 ARM 範本來部署和管理 Azure 中的資源

提示

Bicep 是新語言,提供與 ARM 範本相同的功能,但語法更容易使用。 如果您正在考慮基礎結構即程式碼選項,建議考慮 Bicep。

若要了解 Bicep 檔案的元素,請參閱了解 Bicep 檔案的結構和語法 (機器翻譯)

範本格式

在最簡單的結構中,範本具有下列元素:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "languageVersion": "",
  "contentVersion": "",
  "apiProfile": "",
  "definitions": { },
  "parameters": { },
  "variables": { },
  "functions": [ ],
  "resources": [ ], /* or "resources": { } with languageVersion 2.0 */
  "outputs": { }
}
元素名稱 必要 描述
$schema 描述範本語言版本的 JavaScript 物件標記法 (JSON) 結構描述檔案所在的位置。 您所使用的版本號碼取決於部署範圍以及您的 JSON 編輯器。

如果您使用具 Azure Resource Manager Tools 擴充功能的 Visual Studio Code,請使用最新版本部署資源群組:
https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#

其他編輯器 (包括 Visual Studio) 可能無法處理此結構描述。 針對這些編輯器,請使用:
https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#

針對訂用帳戶部署,使用:
https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#

針對管理群組部署,請使用:
https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#

針對租用戶部署,請使用:
https://schema.management.azure.com/schemas/2019-08-01/tenantDeploymentTemplate.json#
languageVersion 範本的語言版本。 若要檢視 languageVersion 2.0 的增強功能,請參閱 languageVersion 2.0
contentVersion 範本版本 (例如 1.0.0.0)。 您可以為此元素提供任何值。 使用此值在範本中記載重大變更。 使用範本部署資源時,這個值可用來確定使用的是正確的範本。
apiProfile 做為資源類型 API 版本集合的 API 版本。 使用此值,避免必須為範本中每個資源指定 API 版本。 若在指定 API 設定檔版本時未指定資源類型的 API 版本,Resource Manager 會使用該設定檔中定義的資源類型 API 版本。

將範本部署到不同環境 (例如 Azure Stack 和全域 Azure) 時,API 設定檔屬性特別實用。 使用 API 設定檔版本,以確保您的範本會自動使用兩個環境都支援的版本。 如需目前 API 設定檔版本和設定檔中定義之資源 API 版本的清單,請參閱 API 設定檔 (英文)

如需詳細資訊,請參閱使用 API 設定檔追蹤版本 (機器翻譯)
定義 用來驗證陣列和物件值的架構。 只有 languageVersion 2.0才支援定義。
parameters No 執行部署以自訂資源部署時所提供的值。
變數 範本中做為 JSON 片段以簡化範本語言運算式的值。
functions 範本中可用的使用者定義函式。
resources Yes 在資源群組或訂用帳戶中部署或更新的資源類型。
outputs 部署後傳回的值。

每個元素都有可以設定的屬性。 本文將詳細說明範本的各個區段。

定義

definitions 範本的 區段中,指定用於驗證陣列和物件值的架構。 Definitions 只能與 languageVersion 2.0搭配使用。

"definitions": {
  "<definition-name": {
    "type": "<data-type-of-definition>",
    "allowedValues": [ "<array-of-allowed-values>" ],
    "minValue": <minimum-value-for-int>,
    "maxValue": <maximum-value-for-int>,
    "minLength": <minimum-length-for-string-or-array>,
    "maxLength": <maximum-length-for-string-or-array>,
    "prefixItems": <schema-for-validating-array>,
    "items": <schema-for-validating-array-or-boolean>,
    "properties": <schema-for-validating-object>,
    "additionalProperties": <schema-for-validating-object-or-boolean>,
    "discriminator": <schema-to-apply>,
    "nullable": <boolean>,
    "metadata": {
      "description": "<description-of-the-type-definition>"
    }
  }
}
元素名稱 必要 描述
definition-name 類型定義的名稱。 必須是有效的 JavaScript 識別碼。
類型 型別定義的型別。 允許的類型和值為 stringsecurestringintboolobjectsecureObject,以及 array。 請參閱 ARM 範本中的資料類型 (機器翻譯)
allowedValues No 型別定義的允許值陣列,以確保提供正確的值。
minValue No int 類型定義的最小值,這個值是包含的。
maxValue No int 類型定義的最大值,這個值是包含的。
minLength No 字串、安全字串和陣列類型定義的最小長度,此值為包含。
maxLength No 字串、安全字串和陣列類型定義的最大長度,此值為包含。
prefixItems 在相同索引上驗證陣列專案的架構。
項目 套用至索引大於條件約束最大索引之 prefixItems 陣列之所有元素的架構,或布林值,用於控制索引大於條件約束最大索引之陣列的專案 prefixItems
properties No 驗證物件的架構。
additionalProperties 套用至條件約束中未提及之所有屬性的 properties 架構,或是接受條件約束中未定義之任何屬性的 properties 布林值。
discriminator 要根據鑒別子屬性套用的架構。
可為 null 的 布林值,表示值可能是 Null 或省略。
description No 透過入口網站向使用者顯示的類型定義描述。 如需詳細資訊,請參閱範本中的註解

如需如何使用類型定義的範例,請參閱 ARM 範本中的類型定義

在 Bicep 中,請參閱 使用者定義資料類型

參數

在範本的 parameters 區段中,您會指定可在部署資源時輸入的值。 範本中限制使用 256 個參數。 您可以使用包含多個屬性的物件來減少參數數目。

參數的可用屬性包括:

"parameters": {
  "<parameter-name>" : {
    "type" : "<type-of-parameter-value>",
    "defaultValue": "<default-value-of-parameter>",
    "allowedValues": [ "<array-of-allowed-values>" ],
    "minValue": <minimum-value-for-int>,
    "maxValue": <maximum-value-for-int>,
    "minLength": <minimum-length-for-string-or-array>,
    "maxLength": <maximum-length-for-string-or-array>,
    "prefixItems": <schema-for-validating-array>,
    "items": <schema-for-validating-array-or-boolean>,
    "properties": <schema-for-validating-object>,
    "additionalProperties": <schema-for-validating-object-or-boolean>,
    "discriminator": <schema-to-apply>,
    "nullable": <boolean>,
    "metadata": {
      "description": "<description-of-the parameter>"
    }
  }
}
元素名稱 必要 描述
parameter-name Yes 參數的名稱。 必須是有效的 JavaScript 識別碼。
類型 Yes 參數值類型。 允許的類型和值為 stringsecurestringintboolobjectsecureObject,以及 array。 請參閱 ARM 範本中的資料類型 (機器翻譯)
defaultValue No 如果未提供參數值,則會使用參數的預設值。
allowedValues No 參數的允許值陣列,確保提供正確的值。
minValue No int 類型參數的最小值,含此值。
maxValue No int 類型參數的最大值,含此值。
minLength No 字串、securestring 及陣列類型參數長度的最小值,含此值。
maxLength No 字串、securestring 及陣列類型參數長度的最大值,含此值。
prefixItems 在相同索引上驗證陣列專案的型別定義。 prefixItems 只有 languageVersion 2.0才支援。
項目 套用至索引大於條件約束最大索引之 prefixItems 陣列之所有元素的架構,或布林值,用於控制索引大於條件約束最大索引之陣列的專案 prefixItemsitems 只有 languageVersion 2.0才支援。
properties No 驗證物件的架構。 properties 只有 languageVersion 2.0才支援。
additionalProperties 套用至條件約束中未提及之所有屬性的 properties 架構,或是接受條件約束中未定義之任何屬性的 properties 布林值。 additionalProperties 只有 languageVersion 2.0才支援。
discriminator 要根據鑒別子屬性套用的架構。 discriminator 只有 languageVersion 2.0才支援。
可為 null 的 布林值,表示值可能是 Null 或省略。 nullable 只有 languageVersion 2.0才支援。
description No 透過入口網站向使用者顯示的參數說明。 如需詳細資訊,請參閱範本中的註解

如需如何使用參數的範例,請參閱 ARM 範本中的參數 (機器翻譯)

在 Bicep 中,請參閱參數

變數

variables 區段中,您會建構可用於整個範本中的值。 您不需要定義變數,但它們通常會經由減少複雜運算式來簡化您的範本。 每個變數的格式都符合其中一個資料類型。 範本中的變數限制為 256 個。

以下範例說明定義變數的可用選項:

"variables": {
  "<variable-name>": "<variable-value>",
  "<variable-name>": {
    <variable-complex-type-value>
  },
  "<variable-object-name>": {
    "copy": [
      {
        "name": "<name-of-array-property>",
        "count": <number-of-iterations>,
        "input": <object-or-value-to-repeat>
      }
    ]
  },
  "copy": [
    {
      "name": "<variable-array-name>",
      "count": <number-of-iterations>,
      "input": <object-or-value-to-repeat>
    }
  ]
}

如需使用 copy 為變數建立多個值的資訊,請參閱變數反覆項目 (機器翻譯)

如需如何使用變數的範例,請參閱 ARM 範本中的變數 (機器翻譯)

在 Bicep 中,請參閱變數

函式

在您的範本內,您可以建立自己的函式。 這些函式可供您在範本中使用。 您通常會定義不想在整個範本中重複使用的複雜運算式。 您會從範本中支援的運算式和函式建立使用者定義的函式。

在定義使用者函式時,有一些限制:

  • 此函式無法存取變數。
  • 此函式只能使用函式中定義的參數。 在使用者定義函數內使用 parameters 函數時會受到限制,只能使用該函數的參數。
  • 此函式無法呼叫其他的使用者定義函式。
  • 此函式不能使用參考函式
  • 函式的參數不能有預設值。
"functions": [
  {
    "namespace": "<namespace-for-functions>",
    "members": {
      "<function-name>": {
        "parameters": [
          {
            "name": "<parameter-name>",
            "type": "<type-of-parameter-value>"
          }
        ],
        "output": {
          "type": "<type-of-output-value>",
          "value": "<function-return-value>"
        }
      }
    }
  }
],
元素名稱 必要 描述
命名空間 Yes 自訂函數的命名空間。 用來避免與範本函數發生命名衝突。
function-name Yes 自訂函數的名稱。 呼叫函數時,請合併函數名稱與命名空間。 舉例來說,若要在命名空間 contoso 中呼叫名為 uniqueName 的函數,請使用 "[contoso.uniqueName()]"
parameter-name No 要在自訂函數中使用的參數名稱。
parameter-value No 參數值類型。 允許的類型和值為 stringsecurestringintboolobjectsecureObject,以及 array
output-type Yes 輸出值的類型。 輸出值支援與函數輸入參數相同的類型。
output-value Yes 從函數評估並傳回的範本語言運算式。

如需如何使用自訂函數的範例,請參閱 ARM 範本中的使用者定義函數 (機器翻譯)

在 Bicep 中,不支援使用者定義函式。 Bicep 支援各種 式和 運算子

資源

resources 區段中,您會定義部署或更新的資源。 範本中的資源限制為 800 個。

您會定義結構如下的資源:

"resources": [
  {
    "condition": "<true-to-deploy-this-resource>",
    "type": "<resource-provider-namespace/resource-type-name>",
    "apiVersion": "<api-version-of-resource>",
    "name": "<name-of-the-resource>",
    "comments": "<your-reference-notes>",
    "location": "<location-of-resource>",
    "dependsOn": [
        "<array-of-related-resource-names>"
    ],
    "tags": {
        "<tag-name1>": "<tag-value1>",
        "<tag-name2>": "<tag-value2>"
    },
    "identity": {
      "type": "<system-assigned-or-user-assigned-identity>",
      "userAssignedIdentities": {
        "<resource-id-of-identity>": {}
      }
    },
    "sku": {
        "name": "<sku-name>",
        "tier": "<sku-tier>",
        "size": "<sku-size>",
        "family": "<sku-family>",
        "capacity": <sku-capacity>
    },
    "kind": "<type-of-resource>",
    "scope": "<target-scope-for-extension-resources>",
    "copy": {
        "name": "<name-of-copy-loop>",
        "count": <number-of-iterations>,
        "mode": "<serial-or-parallel>",
        "batchSize": <number-to-deploy-serially>
    },
    "plan": {
        "name": "<plan-name>",
        "promotionCode": "<plan-promotion-code>",
        "publisher": "<plan-publisher>",
        "product": "<plan-product>",
        "version": "<plan-version>"
    },
    "properties": {
        "<settings-for-the-resource>",
        "copy": [
            {
                "name": ,
                "count": ,
                "input": {}
            }
        ]
    },
    "resources": [
        "<array-of-child-resources>"
    ]
  }
]
元素名稱 必要 描述
condition (條件) No 布林值,指出是否在此部署期間布建資源。 若為 true,就會在部署期間建立資源。 若為 false,則會略過此部署的資源。 請參閱條件
類型 Yes 資源類型。 此值是資源提供者命名空間與資源類型的組合 (例如 Microsoft.Storage/storageAccounts)。 若要決定可用的值,請參閱範本參考 (英文)。 若為子系資源,類型的格式取決於其是否在父系資源內為巢狀,或在父系資源外定義。 請參閱設定子資源的名稱和類型
apiVersion 要用來建立資源的 REST API 版本。 建立新範本時,請將此值設定為您要部署之資源的最新版本。 只要範本視需求運作,就能繼續使用相同 API 版本。 您可繼續使用相同 API 版本,將新 API 版本變更範本運作方式的風險最小化。 只在想使用更新版本引進的新功能時,才考慮更新 API 版本。 若要決定可用的值,請參閱範本參考 (英文)
NAME 資源名稱。 此名稱必須遵循在 RFC3986 中定義的 URI 元件限制。 將資源名稱向外部合作對象公開的 Azure 服務,會驗證該名稱,確定並非嘗試詐騙其他身分識別。 若為子系資源,名稱的格式取決於其是否在父系資源內為巢狀,或在父系資源外定義。 請參閱設定子資源的名稱和類型
comments No 您在範本中記錄資源的註解。 如需詳細資訊,請參閱範本中的註解
location 不定 所提供資源的支援地理位置。 您可以選取任何可用的位置,但通常選擇接近您的使用者的位置很合理。 通常,將彼此互動的資源放在相同區域也合乎常理。 大部分的資源類型都需要有位置,但某些類型 (例如角色指派) 不需要位置。 請參閱設定資源位置 (機器翻譯)
dependsOn No 在部署這項資源之前必須部署的資源。 Resource Manager 會評估資源之間的相依性,並依正確的順序進行部署。 資源若不互相依賴,則會平行部署資源。 值可以是以逗號分隔的資源名稱或資源唯一識別碼清單。 只會列出此範本中已部署的資源。 此範本中未定義的資源必須已經存在。 避免加入不必要的相依性,因為可能會降低部署速度並產生循環相依性。 如需設定相依性的指導,請參閱定義在 ARM 範本中部署資源的順序 (機器翻譯)
tags 與資源相關聯的標記。 套用標籤,既可以邏輯方式組織訂用帳戶中的資源。
身分識別 No 某些資源支援 Azure 資源受控識別。 這些資源在資源宣告的根層級具有身分識別物件。 您可以設定身分識別是由使用者指派或系統指派。 若為使用者指派的身分識別,請提供身分識別的資源識別碼清單。 將索引鍵設定為資源識別碼,並將值設定為空白物件。 如需詳細資訊,請參閱使用範本在 Azure VM 上設定 Azure 資源受控識別 (機器翻譯)
sku 某些資源允許以值定義要部署的 SKU。 例如,您可以指定儲存體帳戶的備援類型。
kind No 某些資源允許以值定義您所部署的資源類型。 例如,您可以指定要建立的 Azure Cosmos DB 執行個體類型。
scope No scope 屬性僅適用於延伸模組資源類型。 指定與部署範圍不同的範圍時,請使用此屬性。 請參閱在 ARM 範本中設定延伸模組資源的範圍 (機器翻譯)
copy No 如果需要多個執行個體,要建立的資源數目。 預設模式為平行。 如果您不想要同時部署所有或某些資源,請指定序列模式。 如需詳細資訊,請參閱在 Azure Resource Manager 中建立資源的數個執行個體
計劃 No 某些資源允許以值定義要部署的計劃。 例如,您可以指定虛擬機器的 Marketplace 映像。
properties No 資源特定的組態設定。 屬性的值和您在 REST API 作業 (PUT 方法) 要求主體中提供來建立資源的值是一樣的。 您也可以指定複本陣列,以建立屬性的數個執行個體。 若要決定可用的值,請參閱範本參考 (英文)
resources 與正在定義的資源相依的下層資源。 只提供父資源的結構描述允許的資源類型。 沒有隱含父資源的相依性。 您必須明確定義該相依性。 請參閱設定子資源的名稱和類型

若要在 ARM JSON 範本中支援 Bicep 符號名稱,請新增 languageVersion 版本或更新版本 2.0 ,並將資源定義從陣列變更為 物件。

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "languageVersion": "2.0",
  "contentVersion": "1.0.0.0",
  "resources": {
    "<name-of-the-resource>": {
      ...
    }
  }
}

如需詳細資訊,請參閱資源

在 Bicep 中,請參閱資源

輸出

outputs 區段中,您會指定從部署傳回的值。 您一般會從已部署的資源傳回值。 您在範本中限制為 64 個輸出

下列範例顯示輸出定義的結構:

"outputs": {
  "<output-name>": {
    "condition": "<boolean-value-whether-to-output-value>",
    "type": "<type-of-output-value>",
    "value": "<output-value-expression>",
    "copy": {
      "count": <number-of-iterations>,
      "input": <values-for-the-variable>
    }
  }
}
元素名稱 必要 描述
output-name Yes 輸出值的名稱。 必須是有效的 JavaScript 識別碼。
condition (條件) No 布林值,指出是否傳回此輸出值。 當為 true 時,該值會包含在部署的輸出中。 若為 false,則會略過此部署的輸出值。 未指定時,預設值為 true
類型 Yes 輸出值的類型。 輸出值支援與範本輸入參數相同的類型。 如果您為此輸出類型指定 securestring,此值就不會顯示在部署記錄中,也無法從另一個範本擷取。 若要在多個範本中使用秘密值,請將秘密儲存在 Key Vault 中,並參考參數檔案中的秘密。 如需詳細資訊,請參閱在部署期間使用 Azure Key Vault 以傳遞安全的參數值
value No 評估並傳回做為輸出值的範本語言運算式。 指定 valuecopy
copy No 用來傳回輸出的多個值。 指定 valuecopy。 如需詳細資訊,請參閱 ARM 範本中的輸出反覆項目 (機器翻譯)

如需如何使用輸出的範例,請參閱 ARM 範本中的輸出 (機器翻譯)

在 Bicep 中,請參閱輸出

註解與中繼資料

有幾個選項可將註解與中繼資料新增到您的範本中。

註解

若為內嵌註解,您可以使用 ///* ... */。 在 Visual Studio Code 中,將具有批註的參數檔案儲存為 JSON,其中包含批註 (JSONC) 檔案類型,否則會收到錯誤訊息,指出「JSON 中不允許批註」。

注意

使用 Azure CLI 部署有註解的範本時,請使用 2.3.0 版或更新版本,然後指定 --handle-extended-json-format 參數。

{
  "type": "Microsoft.Compute/virtualMachines",
  "apiVersion": "2023-03-01",
  "name": "[variables('vmName')]", // to customize name, change it in variables
  "location": "[parameters('location')]", //defaults to resource group location
  "dependsOn": [ /* storage account and network interface must be deployed first */
    "[resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))]",
    "[resourceId('Microsoft.Network/networkInterfaces/', variables('nicName'))]"
  ],

在 Visual Studio Code 中,Azure Resource Manager Tools 擴充功能可以自動偵測 ARM 範本並變更語言模式。 如果您在 Visual Studio Code 右下角看到 [Azure Resource Manager 範本],即可使用內嵌註解。 內嵌註解不再被標示為無效。

Azure Resource Manager範本模式中Visual Studio Code螢幕擷取畫面。

在 Bicep 中,請參閱註解

中繼資料

幾乎在範本的任何位置都可以新增 metadata 物件。 Resource Manager 會略過該物件,但您的 JSON 編輯器可能會警告您該屬性無效。 在物件中,定義您需要的屬性。

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "comments": "This template was developed for demonstration purposes.",
    "author": "Example Name"
  },

針對 parameters,新增具 metadata 屬性的 description 物件。

"parameters": {
  "adminUsername": {
    "type": "string",
    "metadata": {
      "description": "User name for the Virtual Machine."
    }
  },

透過入口網站部署範本時,您在描述中提供的文字會自動做為該參數的提示。

顯示Azure 入口網站中參數提示的螢幕擷取畫面。

針對 resources,新增 comments 元素或 metadata 物件。 以下範例顯示 comments 元素和 metadata 物件。

"resources": [
  {
    "type": "Microsoft.Storage/storageAccounts",
    "apiVersion": "2022-09-01",
    "name": "[format('{0}{1}', 'storage', uniqueString(resourceGroup().id))]",
    "comments": "Storage account used to store VM disks",
    "location": "[parameters('location')]",
    "metadata": {
      "comments": "These tags are needed for policy compliance."
    },
    "tags": {
      "Dept": "[parameters('deptName')]",
      "Environment": "[parameters('environment')]"
    },
    "sku": {
      "name": "Standard_LRS"
    },
    "kind": "Storage",
    "properties": {}
  }
]

針對 outputs,將 metadata 物件新增至輸出值。

"outputs": {
  "hostname": {
    "type": "string",
    "value": "[reference(variables('publicIPAddressName')).dnsSettings.fqdn]",
    "metadata": {
      "comments": "Return the fully qualified domain name"
    }
  },

您無法將 metadata 物件新增至使用者定義函數。

多行字串

您可以將字串分成多行。 例如,請參閱以下 JSON 範例中的 location 屬性和任一註解。

注意

若要部署有多行字串的範本,請使用 Azure PowerShell 或 Azure CLI。 針對 CLI,請使用 2.3.0 版或更新版本,然後指定 --handle-extended-json-format 參數。

透過 Azure 入口網站、DevOps 管道或 REST API 部署範本時,不支援多行字串。

{
  "type": "Microsoft.Compute/virtualMachines",
  "apiVersion": "2023-03-01",
  "name": "[variables('vmName')]", // to customize name, change it in variables
  "location": "[
    parameters('location')
    ]", //defaults to resource group location
  /*
    storage account and network interface
    must be deployed first
  */
  "dependsOn": [
    "[resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))]",
    "[resourceId('Microsoft.Network/networkInterfaces/', variables('nicName'))]"
  ],

在 Bicep 中,請參閱多行字串

languageVersion 2.0

注意

不建議在生產環境中使用結尾 -experimental 的任何 languageVersion ,因為實驗性功能可以隨時變更。

注意

適用于 Visual Studio Code 的 Azure Resource Manager Tools 擴充功能目前版本無法辨識languageVersion 2.0中所做的增強功能。

若要使用 languageVersion 2.0,請將 新增 "languageVersion": "2.0" 至您的範本:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "languageVersion": "2.0",
  "contentVersion": "1.0.0.0",
  "resources": {
    "<name-of-the-resource>": {
      ...
    }
  }
}

languageVersion 2.0 隨附的增強功能和變更:

  • 在 ARM JSON 範本中使用符號名稱。 如需詳細資訊,請參閱 使用符號名稱
  • 在資源複製迴圈中使用符號名稱。 請參閱 使用符號名稱
  • 在陣列中使用 dependsOn 符號名稱。 請參閱 DependsOn相依于迴圈中的資源
  • 在函式中使用 reference 符號名稱,而不是資源名稱。 請參閱參考
  • references () 函式,會傳回代表資源集合執行時間狀態的物件陣列。 請參閱 參考
  • 使用 'existing' 資源屬性來宣告 ARM 讀取的現有資源,而不是部署資源。 請參閱 宣告現有的資源
  • 建立使用者定義型別。 請參閱 類型定義
  • 要用於 參數輸出的其他匯總類型驗證條件約束。
  • 屬性的 expressionEvaluationOptions 預設值為 inner 。 值 outer 已遭到封鎖。 請參閱 巢狀範本中的運算式評估範圍
  • 函式會 deployment 傳回有限的屬性子集。 請參閱 部署
  • 如果在符號名稱部署中使用 Deployments 資源,請使用 apiVersion 2020-09-01 或更新版本。
  • 在資源定義中,不再需要運算式中的雙逸出值。 請參閱 逸出字元

後續步驟