Partilhar via


Funções de comparação para modelos ARM

O Resource Manager fornece várias funções para fazer comparações no seu modelo do Azure Resource Manager (modelo ARM):

Gorjeta

O bíceps é recomendado, pois oferece os mesmos recursos que os modelos ARM e a sintaxe é mais fácil de usar. Para saber mais, consulte o operador lógico coalesce e operadores de comparação.

unir

coalesce(arg1, arg2, arg3, ...)

Retorna o primeiro valor não nulo dos parâmetros. Cadeias de caracteres vazias, matrizes vazias e objetos vazios não são nulos.

No Bicep, use o ?? operador em vez disso. Veja Coalesce ??.

Parâmetros

Parâmetro Necessário Tipo Description
Arg1 Sim int, string, array ou objeto O primeiro valor a ser testado para null.
mais args Não int, string, array ou objeto Mais valores para testar para nulo.

Valor devolvido

O valor dos primeiros parâmetros não nulos, que podem ser uma cadeia de caracteres, int, matriz ou objeto. Nulo se todos os parâmetros forem nulos.

Exemplo

O modelo de exemplo a seguir mostra a saída de diferentes usos de coalesce:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "objectToTest": {
      "type": "object",
      "defaultValue": {
        "null1": null,
        "null2": null,
        "string": "default",
        "int": 1,
        "object": { "first": "default" },
        "array": [ 1 ]
      }
    }
  },
  "resources": [
  ],
  "outputs": {
    "stringOutput": {
      "type": "string",
      "value": "[coalesce(parameters('objectToTest').null1, parameters('objectToTest').null2, parameters('objectToTest').string)]"
    },
    "intOutput": {
      "type": "int",
      "value": "[coalesce(parameters('objectToTest').null1, parameters('objectToTest').null2, parameters('objectToTest').int)]"
    },
    "objectOutput": {
      "type": "object",
      "value": "[coalesce(parameters('objectToTest').null1, parameters('objectToTest').null2, parameters('objectToTest').object)]"
    },
    "arrayOutput": {
      "type": "array",
      "value": "[coalesce(parameters('objectToTest').null1, parameters('objectToTest').null2, parameters('objectToTest').array)]"
    },
    "emptyOutput": {
      "type": "bool",
      "value": "[empty(coalesce(parameters('objectToTest').null1, parameters('objectToTest').null2))]"
    }
  }
}

A saída dos valores padrão do exemplo anterior é:

Nome Tipo valor
stringOutput String predefinição
intOutput Int 1
objectOutput Object {"first": "default"}
arrayOutput Matriz [1]
emptyOutput Bool True

equals

equals(arg1, arg2)

Verifica se dois valores são idênticos. A comparação diferencia maiúsculas de minúsculas.

No Bicep, use o == operador em vez disso. Ver Equals ==.

Parâmetros

Parâmetro Necessário Tipo Description
Arg1 Sim int, string, array ou objeto O primeiro valor a verificar a igualdade.
Arg2 Sim int, string, array ou objeto O segundo valor para verificar a igualdade.

Valor devolvido

Retorna True se os valores forem iguais, caso contrário, False.

Observações

A equals função é frequentemente usada com o condition elemento para testar se um recurso é implantado:

{
  "condition": "[equals(parameters('newOrExisting'),'new')]",
  "type": "Microsoft.Storage/storageAccounts",
  "name": "[variables('storageAccountName')]",
  "apiVersion": "2025-06-01",
  "location": "[resourceGroup().location]",
  "sku": {
    "name": "[variables('storageAccountType')]"
  },
  "kind": "Storage",
  "properties": {}
}

Exemplo

O exemplo a seguir verifica diferentes tipos de valores para igualdade. Todos os valores padrão retornam True:

 "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "firstInt": {
      "type": "int",
      "defaultValue": 1
    },
    "secondInt": {
      "type": "int",
      "defaultValue": 1
    },
    "firstString": {
      "type": "string",
      "defaultValue": "demo"

A saída dos valores padrão do exemplo anterior é:

Nome Tipo valor Nota
checkInts Bool True
checkStrings Bool False O resultado é false porque a comparação diferencia maiúsculas de minúsculas.
checkArrays Bool True
checkObjects Bool True

O modelo de exemplo a seguir usa not com iguais:

{
  "$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))]"
    }
  }
}

A saída do exemplo anterior é:

Nome Tipo valor
checkNotEquals Bool True

greater

greater(arg1, arg2)

Verifica se o primeiro valor é maior que o segundo.

No Bicep, use o > operador em vez disso. Ver Maior que >.

Parâmetros

Parâmetro Necessário Tipo Description
Arg1 Sim int ou string O primeiro valor para a maior comparação.
Arg2 Sim int ou string O segundo valor para a maior comparação.

Valor devolvido

Retorna True se o primeiro valor for maior que o segundo valor, caso contrário, False.

Exemplo

O exemplo a seguir verifica se um valor é maior que outro:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "firstInt": {
      "type": "int",
      "defaultValue": 1
    },
    "secondInt": {
      "type": "int",
      "defaultValue": 2
    },
    "firstString": {
      "type": "string",
      "defaultValue": "A"
    },
    "secondString": {
      "type": "string",
      "defaultValue": "a"
    }
  },
  "resources": [
  ],
  "outputs": {
    "checkInts": {
      "type": "bool",
      "value": "[greater(parameters('firstInt'), parameters('secondInt') )]"
    },
    "checkStrings": {
      "type": "bool",
      "value": "[greater(parameters('firstString'), parameters('secondString'))]"
    }
  }
}

A saída dos valores padrão do exemplo anterior é:

Nome Tipo valor
checkInts Bool False
checkStrings Bool True

greaterOrEquals

greaterOrEquals(arg1, arg2)

Verifica se o primeiro valor é maior ou igual ao segundo valor.

No Bicep, use o >= operador em vez disso. Consulte Maior que ou igual >=.

Parâmetros

Parâmetro Necessário Tipo Description
Arg1 Sim int ou string O primeiro valor para a comparação maior ou igual.
Arg2 Sim int ou string O segundo valor para a comparação maior ou igual.

Valor devolvido

Retorna True se o primeiro valor for maior ou igual ao segundo valor, caso contrário, False.

Exemplo

O exemplo a seguir verifica se um valor é maior ou igual a outro:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "firstInt": {
      "type": "int",
      "defaultValue": 1
    },
    "secondInt": {
      "type": "int",
      "defaultValue": 2
    },
    "firstString": {
      "type": "string",
      "defaultValue": "A"
    },
    "secondString": {
      "type": "string",
      "defaultValue": "a"
    }
  },
  "resources": [
  ],
  "outputs": {
    "checkInts": {
      "type": "bool",
      "value": "[greaterOrEquals(parameters('firstInt'), parameters('secondInt') )]"
    },
    "checkStrings": {
      "type": "bool",
      "value": "[greaterOrEquals(parameters('firstString'), parameters('secondString'))]"
    }
  }
}

A saída dos valores padrão do exemplo anterior é:

Nome Tipo valor
checkInts Bool False
checkStrings Bool True

less

less(arg1, arg2)

Verifica se o primeiro valor é menor que o segundo.

No Bicep, use o < operador em vez disso. Ver Menos de <.

Parâmetros

Parâmetro Necessário Tipo Description
Arg1 Sim int ou string O primeiro valor para a menor comparação.
Arg2 Sim int ou string O segundo valor para a menor comparação.

Valor devolvido

Retorna True se o primeiro valor for menor que o segundo valor, caso contrário, False.

Exemplo

O exemplo a seguir verifica se um valor é menor que outro:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "firstInt": {
      "type": "int",
      "defaultValue": 1
    },
    "secondInt": {
      "type": "int",
      "defaultValue": 2
    },
    "firstString": {
      "type": "string",
      "defaultValue": "A"
    },
    "secondString": {
      "type": "string",
      "defaultValue": "a"
    }
  },
  "resources": [
  ],
  "outputs": {
    "checkInts": {
      "type": "bool",
      "value": "[less(parameters('firstInt'), parameters('secondInt') )]"
    },
    "checkStrings": {
      "type": "bool",
      "value": "[less(parameters('firstString'), parameters('secondString'))]"
    }
  }
}

A saída dos valores padrão do exemplo anterior é:

Nome Tipo valor
checkInts Bool True
checkStrings Bool False

lessOrEquals

lessOrEquals(arg1, arg2)

Verifica se o primeiro valor é menor ou igual ao segundo valor.

No Bicep, use o <= operador em vez disso. Ver Menor ou igual <=.

Parâmetros

Parâmetro Necessário Tipo Description
Arg1 Sim int ou string O primeiro valor para a comparação menor ou igual.
Arg2 Sim int ou string O segundo valor para a comparação menor ou igual.

Valor devolvido

Retorna True se o primeiro valor for menor ou igual ao segundo valor, caso contrário, False.

Exemplo

O exemplo a seguir verifica se um valor é menor ou igual a outro:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "firstInt": {
      "type": "int",
      "defaultValue": 1
    },
    "secondInt": {
      "type": "int",
      "defaultValue": 2
    },
    "firstString": {
      "type": "string",
      "defaultValue": "A"
    },
    "secondString": {
      "type": "string",
      "defaultValue": "a"
    }
  },
  "resources": [
  ],
  "outputs": {
    "checkInts": {
      "type": "bool",
      "value": "[lessOrEquals(parameters('firstInt'), parameters('secondInt') )]"
    },
    "checkStrings": {
      "type": "bool",
      "value": "[lessOrEquals(parameters('firstString'), parameters('secondString'))]"
    }
  }
}

A saída dos valores padrão do exemplo anterior é:

Nome Tipo valor
checkInts Bool True
checkStrings Bool False

Próximos passos

Para obter uma descrição das seções em um modelo ARM, consulte Compreender a estrutura e a sintaxe dos modelos ARM.