Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Resource Manager provides several functions for making comparisons in your Azure Resource Manager template (ARM template):
Tip
We recommend Bicep because it offers the same capabilities as ARM templates and the syntax is easier to use. To learn more, see the bool logical function and logical operators.
and(arg1, arg2, ...)
Checks whether all parameter values are true.
The and
function isn't supported in Bicep. Use the && operator instead.
Parameter | Required | Type | Description |
---|---|---|---|
arg1 | Yes | boolean | The first value to check whether is true. |
arg2 | Yes | boolean | The second value to check whether is true. |
more arguments | No | boolean | More arguments to check whether are true. |
Returns True if all values are true; otherwise, False.
The following example shows how to use logical functions.
{
"$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'))]"
}
}
}
The output from the preceding example is:
Name | Type | Value |
---|---|---|
andExampleOutput | Bool | False |
orExampleOutput | Bool | True |
notExampleOutput | Bool | False |
bool(arg1)
Converts the parameter to a boolean.
In Bicep, use the bool logical function.
Parameter | Required | Type | Description |
---|---|---|---|
arg1 | Yes | string or int | The value to convert to a boolean. |
A boolean of the converted value.
You can also use true() and false() to get boolean values.
The following example shows how to use bool with a string or integer.
{
"$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)]"
}
}
}
The output from the preceding example with the default values is:
Name | Type | Value |
---|---|---|
trueString | Bool | True |
falseString | Bool | False |
trueInt | Bool | True |
falseInt | Bool | False |
false()
Returns false.
The false
function isn't available in Bicep. Use the false
keyword instead.
The false function doesn't accept any parameters.
A boolean that is always false.
The following example returns a false output value.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"falseOutput": {
"type": "bool",
"value": "[false()]"
}
}
}
The output from the preceding example is:
Name | Type | Value |
---|---|---|
falseOutput | Bool | False |
if(condition, trueValue, falseValue)
Returns a value based on whether a condition is true or false.
The if
function isn't supported in Bicep. Use the ?: operator instead.
Parameter | Required | Type | Description |
---|---|---|---|
condition | Yes | boolean | The value to check whether it's true or false. |
trueValue | Yes | string, int, object, or array | The value to return when the condition is true. |
falseValue | Yes | string, int, object, or array | The value to return when the condition is false. |
Returns second parameter when first parameter is True; otherwise, returns third parameter.
When the condition is True, only the true value is evaluated. When the condition is False, only the false value is evaluated. With the if
function, you can include expressions that are only conditionally valid. For example, you can reference a resource that exists under one condition but not under the other condition. An example of conditionally evaluating expressions is shown in the following section.
The following example shows how to use the if
function.
{
"$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'))]"
}
}
}
The output from the preceding example is:
Name | Type | Value |
---|---|---|
yesOutput | String | yes |
noOutput | String | no |
objectOutput | Object | { "test": "value1" } |
The following example template shows how to use this function with expressions that are only conditionally valid.
{
"$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": "2017-03-30",
"name": "[concat(parameters('vmName'),'/omsOnboarding')]",
"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, json('null'))]"
},
"protectedSettings": {
"workspaceKey": "[if(not(empty(parameters('logAnalytics'))), listKeys(parameters('logAnalytics'), '2015-11-01-preview').primarySharedKey, json('null'))]"
}
}
}
],
"outputs": {
"mgmtStatus": {
"type": "string",
"value": "[if(not(empty(parameters('logAnalytics'))), 'Enabled monitoring for VM!', 'Nothing to enable')]"
}
}
}
not(arg1)
Converts boolean value to its opposite value.
The not
function isn't supported in Bicep. Use the ! operator instead.
Parameter | Required | Type | Description |
---|---|---|---|
arg1 | Yes | boolean | The value to convert. |
Returns True when parameter is False. Returns False when parameter is True.
The following example shows how to use logical functions.
{
"$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'))]"
}
}
}
The output from the preceding example is:
Name | Type | Value |
---|---|---|
andExampleOutput | Bool | False |
orExampleOutput | Bool | True |
notExampleOutput | Bool | False |
The following example uses not
with 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))]"
}
}
}
The output from the preceding example is:
Name | Type | Value |
---|---|---|
checkNotEquals | Bool | True |
or(arg1, arg2, ...)
Checks whether any parameter value is true.
The or
function isn't supported in Bicep. Use the || operator instead.
Parameter | Required | Type | Description |
---|---|---|---|
arg1 | Yes | boolean | The first value to check whether is true. |
arg2 | Yes | boolean | The second value to check whether is true. |
more arguments | No | boolean | More arguments to check whether are true. |
Returns True if any value is true; otherwise, False.
The following example shows how to use logical functions.
{
"$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'))]"
}
}
}
The output from the preceding example is:
Name | Type | Value |
---|---|---|
andExampleOutput | Bool | False |
orExampleOutput | Bool | True |
notExampleOutput | Bool | False |
true()
Returns true.
The true
function isn't available in Bicep. Use the true
keyword instead.
The true function doesn't accept any parameters.
A boolean that is always true.
The following example returns a true output value.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"trueOutput": {
"type": "bool",
"value": "[true()]"
}
}
}
The output from the preceding example is:
Name | Type | Value |
---|---|---|
trueOutput | Bool | True |
- For a description of the sections in an ARM template, see Understand the structure and syntax of ARM templates.