ARM 範本的邏輯函式
Resource Manager 提供數個函式,可讓您在 Azure Resource Manager 範本 (ARM 範本) 中進行比較:
及
and(arg1, arg2, ...)
檢查所有參數值是否為 true。
Bicep 不支援 and
函式。 請改用 && 運算子。
參數
參數 | 必要 | 類型 | 描述 |
---|---|---|---|
arg1 | Yes | boolean | 要檢查是否為 true 的第一個值。 |
arg2 | Yes | boolean | 要檢查是否為 true 的第二個值。 |
更多引數 | No | boolean | 要檢查是否為 true 的更多引數。 |
傳回值
如果所有值都是 true,則傳回 True,否則會傳回 False。
範例
下列範例會示範如何使用邏輯函式。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"andExampleOutput": {
"type": "bool",
"value": "[and(bool('true'), bool('false'))]"
},
"orExampleOutput": {
"type": "bool",
"value": "[or(bool('true'), bool('false'))]"
},
"notExampleOutput": {
"type": "bool",
"value": "[not(bool('true'))]"
}
}
}
前述範例的輸出為:
名稱 | 類型 | 值 |
---|---|---|
andExampleOutput | Bool | False |
orExampleOutput | Bool | True |
notExampleOutput | Bool | False |
bool
bool(arg1)
將參數轉換為布林值。
針對 Bicep 檔案,使用 bool 邏輯函數。
參數
參數 | 必要 | 類型 | 描述 |
---|---|---|---|
arg1 | Yes | 字串或整數 | 要轉換為布林值的值。 |
傳回值
轉換值的布林值。
備註
您也可以使用 true() 和 false() 取得布林值。
範例
下列範例顯示如何搭配使用 bool 與字串或整數。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"trueString": {
"type": "bool",
"value": "[bool('true')]"
},
"falseString": {
"type": "bool",
"value": "[bool('false')]"
},
"trueInt": {
"type": "bool",
"value": "[bool(1)]"
},
"falseInt": {
"type": "bool",
"value": "[bool(0)]"
}
}
}
上述範例中具有預設值的輸出如下:
名稱 | 類型 | 值 |
---|---|---|
trueString | Bool | True |
falseString | Bool | False |
trueInt | Bool | True |
falseInt | Bool | False |
false
false()
傳回 false。
false
函式無法在 Bicep 中使用。 請改為使用 false
關鍵字。
參數
false 函式不接受任何參數。
傳回值
一律為 false 的布林值。
範例
下列範例會傳回 false 的輸出值。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"falseOutput": {
"type": "bool",
"value": "[false()]"
}
}
}
前述範例的輸出為:
名稱 | 類型 | 值 |
---|---|---|
falseOutput | Bool | False |
if
if(condition, trueValue, falseValue)
根據條件是 true 或 false 傳回值。
Bicep 不支援 if
函式。 請改用?: 運算子。
參數
參數 | 必要 | 類型 | 描述 |
---|---|---|---|
條件 | Yes | boolean | 需檢查是否為 true 或 false 的值。 |
trueValue | Yes | 字串、int、物件或陣列 | 條件為 true 時,傳回的值。 |
falseValue | Yes | 字串、int、物件或陣列 | 條件為 false 時,傳回的值。 |
傳回值
當第一個參數是 True 時,傳回第二個參數;否則會傳回第三個參數。
備註
條件為 True 時,只會評估 true 值。 條件為 False 時,只會評估 false 值。 使用 if
函式時,您可以僅附上條件式有效的運算式。 例如,您可以參照符合某個條件但不符合另一個條件的資源。 下一節顯示條件式評估運算式的範例。
範例
下列範例示範如何使用 if
函式。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
],
"outputs": {
"yesOutput": {
"type": "string",
"value": "[if(equals('a', 'a'), 'yes', 'no')]"
},
"noOutput": {
"type": "string",
"value": "[if(equals('a', 'b'), 'yes', 'no')]"
},
"objectOutput": {
"type": "object",
"value": "[if(equals('a', 'a'), json('{\"test\": \"value1\"}'), json('null'))]"
}
}
}
前述範例的輸出為:
名稱 | 類型 | 值 |
---|---|---|
yesOutput | String | 是 |
noOutput | String | 否 |
objectOutput | Object | { "test": "value1" } |
下列範例範本顯示如何將此函式與僅在條件下有效的運算式搭配使用。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"type": "string"
},
"location": {
"type": "string"
},
"logAnalytics": {
"type": "string",
"defaultValue": ""
}
},
"resources": [
{
"condition": "[not(empty(parameters('logAnalytics')))]",
"type": "Microsoft.Compute/virtualMachines/extensions",
"apiVersion": "2022-11-01",
"name": "[format('{0}/omsOnboarding', parameters('vmName'))]",
"location": "[parameters('location')]",
"properties": {
"publisher": "Microsoft.EnterpriseCloud.Monitoring",
"type": "MicrosoftMonitoringAgent",
"typeHandlerVersion": "1.0",
"autoUpgradeMinorVersion": true,
"settings": {
"workspaceId": "[if(not(empty(parameters('logAnalytics'))), reference(parameters('logAnalytics'), '2015-11-01-preview').customerId, null())]"
},
"protectedSettings": {
"workspaceKey": "[if(not(empty(parameters('logAnalytics'))), listKeys(parameters('logAnalytics'), '2015-11-01-preview').primarySharedKey, null())]"
}
}
}
],
"outputs": {
"mgmtStatus": {
"type": "string",
"value": "[if(not(empty(parameters('logAnalytics'))), 'Enabled monitoring for VM!', 'Nothing to enable')]"
}
}
}
not
not(arg1)
將布林值轉換為其相反值。
Bicep 不支援 not
函式。 請改用 ! 運算子。
參數
參數 | 必要 | 類型 | 描述 |
---|---|---|---|
arg1 | Yes | boolean | 要進行轉換的 值。 |
傳回值
當參數是 False 時,傳回 True。 當參數是 True 時,傳回 False。
範例
下列範例會示範如何使用邏輯函式。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"andExampleOutput": {
"type": "bool",
"value": "[and(bool('true'), bool('false'))]"
},
"orExampleOutput": {
"type": "bool",
"value": "[or(bool('true'), bool('false'))]"
},
"notExampleOutput": {
"type": "bool",
"value": "[not(bool('true'))]"
}
}
}
前述範例的輸出為:
名稱 | 類型 | 值 |
---|---|---|
andExampleOutput | Bool | False |
orExampleOutput | Bool | True |
notExampleOutput | Bool | False |
下列範例使用 not
搭配Equals。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
],
"outputs": {
"checkNotEquals": {
"type": "bool",
"value": "[not(equals(1, 2))]"
}
}
}
前述範例的輸出為:
名稱 | 類型 | 值 |
---|---|---|
checkNotEquals | Bool | True |
或
or(arg1, arg2, ...)
檢查任何參數值是否為 true。
Bicep 不支援 or
函式。 請改用 || 運算子。
參數
參數 | 必要 | 類型 | 描述 |
---|---|---|---|
arg1 | Yes | boolean | 要檢查是否為 true 的第一個值。 |
arg2 | Yes | boolean | 要檢查是否為 true 的第二個值。 |
更多引數 | No | boolean | 要檢查是否為 true 的更多引數。 |
傳回值
如果任何值為 true,傳回 True,否則會傳回 False。
範例
下列範例會示範如何使用邏輯函式。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"andExampleOutput": {
"type": "bool",
"value": "[and(bool('true'), bool('false'))]"
},
"orExampleOutput": {
"type": "bool",
"value": "[or(bool('true'), bool('false'))]"
},
"notExampleOutput": {
"type": "bool",
"value": "[not(bool('true'))]"
}
}
}
前述範例的輸出為:
名稱 | 類型 | 值 |
---|---|---|
andExampleOutput | Bool | False |
orExampleOutput | Bool | True |
notExampleOutput | Bool | False |
true
true()
傳回 true。
true
函式無法在 Bicep 中使用。 請改為使用 true
關鍵字。
參數
True 函式不接受任何參數。
傳回值
一律為 true 的布林值。
範例
下列範例會傳回 true 的輸出值。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"trueOutput": {
"type": "bool",
"value": "[true()]"
}
}
}
前述範例的輸出為:
名稱 | 類型 | 值 |
---|---|---|
trueOutput | Bool | True |
下一步
- 如需 ARM 範本中各章節的說明,請參閱了解 ARM 範本的結構和語法。