Compartir a través de


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 , ya que ofrece las mismas funcionalidades que las plantillas de ARM y la sintaxis es más fácil de usar. Para más información, consulte la función lógica y los bool operadores lógicos .

y

and(arg1, arg2, ...)

Comprueba si todos los valores de parámetro son true.

La función and no es compatible con Bicep. En su lugar, use el operador &&.

Parámetros

Parámetro Obligatorio Type Descripción
arg1 boolean Primer valor que se va a comprobar si es true.
arg2 boolean Segundo valor para comprobar si es true.
más argumentos No boolean Más argumentos para comprobar si son true.

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 la logical función :

{
  "$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 Type 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 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 de los valores predeterminados del ejemplo anterior es:

Nombre Type 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 false función no acepta ningún parámetro.

Valor devuelto

Un valor booleano que siempre es false.

Ejemplo

En el ejemplo siguiente se devuelve un valor de salida falso:

{
  "$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 Type Valor
falseOutput Bool False

if

if(condition, trueValue, falseValue)

Devuelve un valor basado en si una condición es true o false.

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 boolean Valor que se va a comprobar si es true o false.
trueValue cadena, int, objeto o matriz Valor que se devuelve cuando la condición es verdadera.
falseValue 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.

Tenga en cuenta que la regla anterior solo se aplica cuando la condición se puede evaluar al principio del proceso de implementación de plantillas. Por ejemplo, no se puede usar en reference() la condición .

Ejemplos

En el ejemplo siguiente se muestra cómo usar la if función :

{
  "$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 Type Valor
yesOutput String
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": "2025-04-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 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 la logical función :

{
  "$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 Type Valor
andExampleOutput Bool False
orExampleOutput Bool True
notExampleOutput Bool False

En el ejemplo siguiente se usa not con iguales:

{
  "$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 Type Valor
checkNotEquals Bool True

or

or(arg1, arg2, ...)

Comprueba si algún valor de parámetro es true.

La función or no es compatible con Bicep. En su lugar, utilice el operador ||.

Parámetros

Parámetro Obligatorio Type Descripción
arg1 boolean Primer valor que se va a comprobar si es true.
arg2 boolean Segundo valor para comprobar si es true.
más argumentos No boolean Más argumentos para comprobar si son true.

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 la logical función :

{
  "$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 Type 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 true función no acepta ningún parámetro.

Valor devuelto

Un valor booleano que siempre es true.

Ejemplo

En el ejemplo siguiente se devuelve un valor 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 Type Valor
trueOutput Bool True

Pasos siguientes