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

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

Dica

Recomendamos o Bicep porque oferece as mesmas capacidades que os modelos do ARM e a sintaxe é mais fácil de utilizar. Para saber mais, veja operador lógico de agrupamento e operadores de comparação .

coalesce

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

Devolve o primeiro valor não nulo dos parâmetros. As cadeias vazias, as matrizes vazias e os objetos vazios não são nulos.

Em Bicep, utilize o ?? operador. Vê Coalesce ??.

Parâmetros

Parâmetro Necessário Tipo Description
arg1 Yes int, cadeia, matriz ou objeto O primeiro valor a testar para nulo.
mais args No int, cadeia, matriz ou objeto Mais valores a testar para nulo.

Valor devolvido

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

Exemplo

O modelo de exemplo seguinte mostra o resultado de diferentes utilizações 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))]"
    }
  }
}

O resultado do exemplo anterior com os valores predefinidos é:

Nome Tipo Valor
stringOutput String predefinição
intOutput int 1
objectOutput Objeto {"first": "default"}
arrayOutput Matriz  [1]
emptyOutput Booleano Verdadeiro

equals

equals(arg1, arg2)

Verifica se dois valores são iguais uns aos outros.

Em Bicep, utilize o == operador. Veja Igual a ==.

Parâmetros

Parâmetro Necessário Tipo Description
arg1 Yes int, cadeia, matriz ou objeto O primeiro valor a verificar a igualdade.
arg2 Yes int, cadeia, matriz ou objeto O segundo valor a verificar a igualdade.

Valor devolvido

Devolve Verdadeiro se os valores forem iguais; caso contrário, Falso.

Observações

A função equals é frequentemente utilizada com o condition elemento para testar se um recurso é implementado.

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

Exemplo

O exemplo seguinte verifica diferentes tipos de valores para igualdade. Todos os valores predefinidos devolvem Verdadeiro.

{
  "$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": "a"
    },
    "secondString": {
      "type": "string",
      "defaultValue": "a"
    },
    "firstArray": {
      "type": "array",
      "defaultValue": [ "a", "b" ]
    },
    "secondArray": {
      "type": "array",
      "defaultValue": [ "a", "b" ]
    },
    "firstObject": {
      "type": "object",
      "defaultValue": { "a": "b" }
    },
    "secondObject": {
      "type": "object",
      "defaultValue": { "a": "b" }
    }
  },
  "resources": [
  ],
  "outputs": {
    "checkInts": {
      "type": "bool",
      "value": "[equals(parameters('firstInt'), parameters('secondInt') )]"
    },
    "checkStrings": {
      "type": "bool",
      "value": "[equals(parameters('firstString'), parameters('secondString'))]"
    },
    "checkArrays": {
      "type": "bool",
      "value": "[equals(parameters('firstArray'), parameters('secondArray'))]"
    },
    "checkObjects": {
      "type": "bool",
      "value": "[equals(parameters('firstObject'), parameters('secondObject'))]"
    }
  }
}

O resultado do exemplo anterior com os valores predefinidos é:

Nome Tipo Valor
checkInts Booleano Verdadeiro
checkStrings Booleano Verdadeiro
checkArrays Booleano Verdadeiro
checkObjects Booleano Verdadeiro

O modelo de exemplo seguinte utiliza não com igual.

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

O resultado do exemplo anterior é:

Nome Tipo Valor
checkNotEquals Booleano Verdadeiro

greater

greater(arg1, arg2)

Verifica se o primeiro valor é maior que o segundo valor.

Em Bicep, utilize o > operador. Veja Maior do que >.

Parâmetros

Parâmetro Necessário Tipo Description
arg1 Yes int ou cadeia O primeiro valor para uma comparação maior.
arg2 Yes int ou cadeia O segundo valor para uma comparação maior.

Valor devolvido

Devolve Verdadeiro se o primeiro valor for superior ao segundo valor; caso contrário, Falso.

Exemplo

O exemplo seguinte verifica se o valor é maior que o 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'))]"
    }
  }
}

O resultado do exemplo anterior com os valores predefinidos é:

Nome Tipo Valor
checkInts Booleano Falso
checkStrings Booleano Verdadeiro

greaterOrEquals

greaterOrEquals(arg1, arg2)

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

Em Bicep, utilize o >= operador. Consulte Maior ou igual >a =.

Parâmetros

Parâmetro Necessário Tipo Description
arg1 Yes int ou cadeia O primeiro valor para a comparação maior ou igual.
arg2 Yes int ou cadeia O segundo valor para a comparação maior ou igual.

Valor devolvido

Devolve Verdadeiro se o primeiro valor for maior ou igual ao segundo valor; caso contrário, Falso.

Exemplo

O exemplo seguinte verifica se o valor é maior ou igual ao 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'))]"
    }
  }
}

O resultado do exemplo anterior com os valores predefinidos é:

Nome Tipo Valor
checkInts Booleano Falso
checkStrings Booleano Verdadeiro

less

less(arg1, arg2)

Verifica se o primeiro valor é inferior ao segundo valor.

Em Bicep, utilize o < operador. Consulte Menos do que <.

Parâmetros

Parâmetro Necessário Tipo Description
arg1 Yes int ou cadeia O primeiro valor para menos comparação.
arg2 Yes int ou cadeia O segundo valor para menos comparação.

Valor devolvido

Devolve Verdadeiro se o primeiro valor for inferior ao segundo valor; caso contrário, Falso.

Exemplo

O exemplo seguinte verifica se o valor é menor do que o 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'))]"
    }
  }
}

O resultado do exemplo anterior com os valores predefinidos é:

Nome Tipo Valor
checkInts Booleano Verdadeiro
checkStrings Booleano Falso

lessOrEquals

lessOrEquals(arg1, arg2)

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

Em Bicep, utilize o <= operador. Consulte Menos do que ou igual <=.

Parâmetros

Parâmetro Necessário Tipo Description
arg1 Yes int ou cadeia O primeiro valor para a comparação menor ou igual a.
arg2 Yes int ou cadeia O segundo valor para a comparação menor ou igual a.

Valor devolvido

Devolve Verdadeiro se o primeiro valor for menor ou igual ao segundo valor; caso contrário, Falso.

Exemplo

O exemplo seguinte verifica se um valor é menor ou igual ao 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'))]"
    }
  }
}

O resultado do exemplo anterior com os valores predefinidos é:

Nome Tipo Valor
checkInts Booleano Verdadeiro
checkStrings Booleano Falso

Passos seguintes