Funciones lógicas para plantillas de ARM
Resource Manager ofrece varias funciones para realizar comparaciones en las plantillas de Azure Resource Manager:
Sugerencia
Se recomienda Bicep porque ofrece las mismas funcionalidades que las plantillas de ARM y la sintaxis es más fácil de usar. Para obtener más información, consulte la función lógica bool y los operadores lógicos.
y
and(arg1, arg2, ...)
Comprueba si todos los valores de parámetros son verdaderos.
La función and
no es compatible con Bicep. En su lugar, use el operador &&.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
arg1 | Sí | boolean | Primer valor cuya veracidad se comprueba. |
arg2 | Sí | boolean | Segundo valor cuya veracidad se comprueba. |
más argumentos | No | boolean | Más argumentos para comprobar si son verdaderos. |
Valor devuelto
Devuelve True si todos los valores son verdaderos; en caso contrario, devuelve False.
Ejemplos
En el ejemplo siguiente se muestra cómo usar las funciones lógicas.
{
"$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'))]"
}
}
}
El resultado del ejemplo anterior es:
Nombre | Tipo | Valor |
---|---|---|
andExampleOutput | Bool | False |
orExampleOutput | Bool | True |
notExampleOutput | Bool | False |
bool
bool(arg1)
Convierte el parámetro en un booleano.
En Bicep, use la función lógica bool.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
arg1 | Sí | cadena o entero | El valor para convertir en booleano. |
Valor devuelto
Valor booleano del valor convertido.
Observaciones
También puede usar true() y false() para obtener valores booleanos.
Ejemplos
En el ejemplo siguiente se muestra cómo usar bool con una cadena o un entero.
{
"$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)]"
}
}
}
La salida del ejemplo anterior con el valor predeterminado es:
Nombre | Tipo | Valor |
---|---|---|
trueString | Bool | True |
falseString | Bool | False |
trueInt | Bool | True |
falseInt | Bool | False |
false
false()
Devuelve false.
La función false
no está disponible en Bicep. En su lugar, use la palabra clave false
.
Parámetros
La función false no acepta ningún parámetro.
Valor devuelto
Valor booleano que siempre es false.
Ejemplo
El ejemplo siguiente devuelve un valor como de salida 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()]"
}
}
}
El resultado del ejemplo anterior es:
Nombre | Tipo | Valor |
---|---|---|
falseOutput | Bool | False |
if
if(condition, trueValue, falseValue)
Devuelve un valor dependiendo de si una condición es verdadera o falsa.
La función if
no es compatible con Bicep. En su lugar, utilice el operador ?:.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
condición | Sí | boolean | El valor que se va a comprobar si es true o false. |
trueValue | Sí | cadena, int, objeto o matriz | Valor que se devuelve cuando la condición es verdadera. |
falseValue | Sí | cadena, int, objeto o matriz | Valor que se devuelve cuando la condición es falsa. |
Valor devuelto
Devuelve el segundo parámetro si el primer parámetro es True; en caso contrario, devuelve el tercer parámetro.
Observaciones
Si la condición es True, solo se evalúa el valor true. Si la condición es False, solo se evalúa el valor false. Con la función if
, puede incluir expresiones que solo son válidas con ciertas condiciones. Por ejemplo, puede hacer referencia a un recurso que existe bajo una condición, pero no bajo la otra. En la sección siguiente se muestra un ejemplo de las expresiones de evaluación con ciertas condiciones.
Ejemplos
En el ejemplo siguiente se muestra cómo usar la función 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'))]"
}
}
}
El resultado del ejemplo anterior es:
Nombre | Tipo | Valor |
---|---|---|
yesOutput | String | sí |
noOutput | String | no |
objectOutput | Object | { "test": "value1" } |
En la plantilla de ejemplo siguiente se muestra cómo usar esta función con expresiones que solo son válidas bajo ciertas condiciones.
{
"$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)
Convierte el valor booleano en su valor opuesto.
La función not
no es compatible con Bicep. En su lugar, utilice el operador !.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
arg1 | Sí | boolean | Valor que se va a convertir. |
Valor devuelto
Devuelve True si el parámetro es False. Devuelve False si el parámetro es True.
Ejemplos
En el ejemplo siguiente se muestra cómo usar las funciones lógicas.
{
"$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'))]"
}
}
}
El resultado del ejemplo anterior es:
Nombre | Tipo | Valor |
---|---|---|
andExampleOutput | Bool | False |
orExampleOutput | Bool | True |
notExampleOutput | Bool | False |
En el siguiente ejemplo se usa not
con not
.
{
"$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))]"
}
}
}
El resultado del ejemplo anterior es:
Nombre | Tipo | Valor |
---|---|---|
checkNotEquals | Bool | True |
or
or(arg1, arg2, ...)
Comprueba si algún valor de parámetro es verdadero.
La función or
no es compatible con Bicep. En su lugar, utilice el operador ||.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
arg1 | Sí | boolean | Primer valor cuya veracidad se comprueba. |
arg2 | Sí | boolean | Segundo valor cuya veracidad se comprueba. |
más argumentos | No | boolean | Más argumentos para comprobar si son verdaderos. |
Valor devuelto
Devuelve True si algún valor es verdadero; en caso contrario, devuelve False.
Ejemplos
En el ejemplo siguiente se muestra cómo usar las funciones lógicas.
{
"$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'))]"
}
}
}
El resultado del ejemplo anterior es:
Nombre | Tipo | Valor |
---|---|---|
andExampleOutput | Bool | False |
orExampleOutput | Bool | True |
notExampleOutput | Bool | False |
true
true()
Devuelve true.
La función true
no está disponible en Bicep. En su lugar, use la palabra clave true
.
Parámetros
La función true no acepta ningún parámetro.
Valor devuelto
Valor booleano que siempre es true.
Ejemplo
El ejemplo siguiente devuelve un valor como de salida 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()]"
}
}
}
El resultado del ejemplo anterior es:
Nombre | Tipo | Valor |
---|---|---|
trueOutput | Bool | True |
Pasos siguientes
- Para obtener una descripción de las secciones de una plantilla de ARM, vea Nociones sobre la estructura y la sintaxis de las plantillas de Azure Resource Manager.