了解 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 | Yes | 描述範本語言版本的 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 | No | 範本的語言版本。 若要檢視 languageVersion 2.0 的增強功能,請參閱 languageVersion 2.0。 |
contentVersion | Yes | 範本版本 (例如 1.0.0.0)。 您可以為此元素提供任何值。 使用此值在範本中記載重大變更。 在使用範本部署資源時,您可以使用此值以確保正在使用正確的範本。 |
apiProfile | No | 做為資源類型 API 版本集合的 API 版本。 使用此值,避免必須為範本中每個資源指定 API 版本。 若在指定 API 設定檔版本時未指定資源類型的 API 版本,Resource Manager 會使用該設定檔中定義的資源類型 API 版本。 將範本部署到不同環境 (例如 Azure Stack 和全域 Azure) 時,API 設定檔屬性特別實用。 使用 API 設定檔版本,以確保您的範本會自動使用兩個環境都支援的版本。 如需目前 API 設定檔版本和設定檔中定義之資源 API 版本的清單,請參閱 API 設定檔 (英文)。 如需詳細資訊,請參閱使用 API 設定檔追蹤版本。 |
definitions | No | 用來驗證陣列和物件值的結構描述。 僅 languageVersion 2.0 支援定義。 |
parameters | No | 執行部署以自訂資源部署時所提供的值。 |
variables | No | 範本中做為 JSON 片段以簡化範本語言運算式的值。 |
functions | No | 範本中可用的使用者定義函式。 |
resources | Yes | 在資源群組或訂用帳戶中部署或更新的資源類型。 |
輸出 | No | 部署後傳回的值。 |
每個元素都有可以設定的屬性。 本文將詳細說明範本的各個區段。
定義
在範本的 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 | Yes | 類型定義的名稱。 必須是有效的 JavaScript 識別碼。 |
type | Yes | 類型定義的類型。 允許的類型和值為 string、securestring、int、bool、object、secureObject,以及 array。 請參閱 ARM 範本中的資料類型。 |
allowedValues | No | 類型定義的允許值陣列,確保提供正確的值。 |
minValue | No | int 類型定義的最小值,含此值。 |
maxValue | No | int 類型定義的最大值,含此值。 |
minLength | No | 字串、安全字串和陣列類型定義的最小長度,含此值。 |
maxLength | No | 字串、安全字串和陣列類型定義的最大長度,含此值。 |
prefixItems | No | 在相同索引處驗證陣列元素的結構描述。 |
項目 | No | 套用至索引大於 prefixItems 條件約束最大索引之陣列的所有元素的結構描述,或用於控制索引大於 prefixItems 條件約束最大索引之陣列元素的布林值。 |
內容 | No | 驗證物件的結構描述。 |
additionalProperties | No | 套用至 properties 條件約束中未提及之所有屬性的結構描述,或接受 properties 條件約束中未定義之任何屬性的布林值。 |
discriminator | No | 根據鑑別子屬性套用的結構描述。 |
nullable | No | 布林值,表示值可能是 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 識別碼。 |
type | Yes | 參數值類型。 允許的類型和值為 string、securestring、int、bool、object、secureObject,以及 array。 請參閱 ARM 範本中的資料類型。 |
defaultValue | No | 如果未提供參數值,則會使用參數的預設值。 |
allowedValues | No | 參數的允許值陣列,確保提供正確的值。 |
minValue | No | int 類型參數的最小值,含此值。 |
maxValue | No | int 類型參數的最大值,含此值。 |
minLength | No | 字串、securestring 及陣列類型參數長度的最小值,含此值。 |
maxLength | No | 字串、securestring 及陣列類型參數長度的最大值,含此值。 |
prefixItems | No | 在相同索引處驗證陣列元素的類型定義。 僅 languageVersion 2.0 支援 prefixItems 。 |
項目 | No | 套用至索引大於 prefixItems 條件約束最大索引之陣列的所有元素的結構描述,或用於控制索引大於 prefixItems 條件約束最大索引之陣列元素的布林值。 僅 languageVersion 2.0 支援 items 。 |
內容 | No | 驗證物件的結構描述。 僅 languageVersion 2.0 支援 properties 。 |
additionalProperties | No | 套用至 properties 條件約束中未提及之所有屬性的結構描述,或接受 properties 條件約束中未定義之任何屬性的布林值。 僅 languageVersion 2.0 支援 additionalProperties 。 |
discriminator | No | 根據鑑別子屬性套用的結構描述。 僅 languageVersion 2.0 支援 discriminator 。 |
nullable | No | 布林值,表示值可能是 Null 或省略。 僅 languageVersion 2.0 支援 nullable 。 |
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 | 參數值類型。 允許的類型和值為 string、securestring、int、bool、object、secureObject,以及 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>"
]
}
]
元素名稱 | 必要 | 描述 |
---|---|---|
條件 | No | 布林值,指出是否會在此部署期間佈建資源。 若為 true ,就會在部署期間建立資源。 若為 false ,則會略過此部署的資源。 請參閱條件。 |
type | Yes | 資源類型。 此值是資源提供者命名空間與資源類型的組合 (例如 Microsoft.Storage/storageAccounts )。 若要決定可用的值,請參閱範本參考。 若為子系資源,類型的格式取決於其是否在父系資源內為巢狀,或在父系資源外定義。 請參閱設定子資源的名稱和類型。 |
apiVersion | Yes | 要用來建立資源的 REST API 版本。 建立新範本時,請將此值設為您要部署資源的最新版本。 只要範本依照需求順利運作,就繼續使用相同的 API 版本。 繼續使用相同的 API 版本,便可將因變更新 API 版本所造成的範本運作風險降到最低。 只在想使用更新版本引進的新功能時,才考慮更新 API 版本。 若要決定可用的值,請參閱範本參考。 |
NAME | Yes | 資源的名稱。 此名稱必須遵循在 RFC3986 中定義的 URI 元件限制。 將資源名稱向外部合作對象公開的 Azure 服務,會驗證該名稱,以確定並非在嘗試詐騙其他身分識別。 若為子系資源,名稱的格式取決於其是否在父系資源內為巢狀,或是否在父系資源外定義。 請參閱設定子資源的名稱和類型。 |
註解 | No | 您在範本中記錄資源的註解。 如需詳細資訊,請參閱範本中的註解。 |
location | 不定 | 所提供資源的支援地理位置。 您可以選取任何可用的位置,但通常選擇接近您的使用者的位置很合理。 通常,將彼此互動的資源放在相同區域也合乎常理。 大部分的資源類型都需要有位置,但某些類型 (例如角色指派) 不需要位置。 請參閱設定資源位置。 |
dependsOn | No | 在部署這項資源之前必須部署的資源。 Resource Manager 會評估資源之間的相依性,並依正確的順序進行部署。 資源若不互相依賴,則會平行部署資源。 值可以是以逗號分隔的資源名稱或資源唯一識別碼清單。 只會列出此範本中已部署的資源。 此範本中未定義的資源必須已經存在。 避免加入不必要的相依性,因為可能會降低部署速度並產生循環相依性。 如需設定相依性的指導,請參閱在 ARM 範本中定義部署資源的順序。 |
標記 | No | 與資源相關聯的標記。 套用標籤,既可以邏輯方式組織訂用帳戶中的資源。 |
身分 | No | 有些資源可支援 Azure 資源受控識別。 這些資源在資源宣告的根層級具有身分識別物件。 您可以設定是由使用者指派或系統指派身分識別。 若為使用者指派的身分識別,請提供身分識別的資源識別碼清單。 將索引碼設為資源識別碼,並將值設為空白物件。 如需詳細資訊,請參閱使用範本在 Azure VM 上設定 Azure 資源受控識別。 |
SKU | No | 某些資源允許以值定義要部署的 SKU。 例如,您可以指定儲存體帳戶的備援類型。 |
kind | No | 某些資源允許以值定義您所部署的資源類型。 例如,您可以指定要建立的 Azure Cosmos DB 執行個體類型。 |
範圍 (scope) | No | scope 屬性僅適用於延伸模組資源類型。 指定與部署範圍不同的範圍時,請使用此屬性。 請參閱在 ARM 範本中設定延伸模組資源的範圍。 |
copy | No | 如果需要多個執行個體,要建立的資源數目。 預設模式為平行。 如果您不想要同時部署所有或某些資源,請指定序列模式。 如需詳細資訊,請參閱在 Azure Resource Manager 中建立資源的數個執行個體。 |
方案 | No | 某些資源允許以值定義要部署的計劃。 例如,您可以指定虛擬機器的 Marketplace 映像。 |
內容 | No | 資源特定的組態設定。 屬性的值和您在 REST API 作業 (PUT 方法) 要求主體中提供來建立資源的值是一樣的。 您也可以指定複本陣列,以建立屬性的數個執行個體。 若要決定可用的值,請參閱範本參考。 |
resources | No | 與正在定義的資源相依的下層資源。 只提供父資源的結構描述允許的資源類型。 沒有隱含父資源的相依性。 您必須明確定義該相依性。 請參閱設定子資源的名稱和類型。 |
若要支援 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 識別碼。 |
條件 | No | 布林值,指出是否傳回此輸出值。 當為 true 時,該值會包含在部署的輸出中。 若為 false ,則會略過此部署的輸出值。 未指定時,預設值為 true 。 |
type | Yes | 輸出值的類型。 輸出值支援與範本輸入參數相同的類型。 如果您為此輸出類型指定 securestring,此值就不會顯示在部署記錄中,也無法從另一個範本擷取。 若要在多個範本中使用密碼值,請將密碼儲存在金鑰保存庫中,並參考參數檔案中的密碼。 如需詳細資訊,請參閱在部署期間使用 Azure Key Vault 以傳遞安全的參數值。 |
value | No | 評估並傳回做為輸出值的範本語言運算式。 指定 value 或 copy。 |
copy | No | 用來傳回輸出的多個值。 指定 value 或 copy。 如需詳細資訊,請參閱 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 範本],即可使用內嵌註解。 內嵌註解不再被標示為無效。
在 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
,新增具有 description
屬性的 metadata
物件。
"parameters": {
"adminUsername": {
"type": "string",
"metadata": {
"description": "User name for the Virtual Machine."
}
},
透過入口網站部署範本時,您在描述中提供的文字會自動做為該參數的提示。
針對 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 工具延伸模組目前版本無法辨識 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() 函式會傳回表示資源集合的執行階段狀態的物件陣列。 請參閱 references。
- 使用 'existing' 資源屬性來宣告 ARM 的現有資源,以讀取 (而不是部署) 資源。 請參閱宣告現有的資源。
- 建立使用者定義類型。 請參閱類型定義。
- 要在參數和輸出中使用的其他匯總類型驗證條件約束。
expressionEvaluationOptions
屬性的預設值是inner
。 值outer
已遭封鎖。 請參閱巢狀範本中的運算式評估範圍。deployment
函式會傳回有限的屬性子集。 請參閱 deployment。- 如果在符號名稱部署中使用 Deployments 資源,請使用 apiVersion
2020-09-01
或更新版本。 - 在資源定義中,已不再需要對運算式內的值進行雙逸出。 請參閱逸出字元。
使用下列任何 Bicep 功能會自動啟用語言 2.0 版程式代碼產生:
下一步
- 若要檢視許多不同類型解決方案的完整範本,請參閱 Azure 快速入門範本。
- 如需您可在範本內使用的函式詳細資訊,請參閱 ARM 範本函式。
- 若要在部署期間合併多個範本,請參閱部署 Azure 資源時使用連結和巢狀範本。
- 如需建立範本的建議,請參閱 ARM 範本最佳做法。
- 如需常見問題的答案,請參閱 ARM 範本常見問題集。