Funções lógicas para modelos do ARM
O Resource Manager oferece diversas funções para fazer comparações no modelo do ARM (Azure Resource Manager):
Dica
Recomendamos o Bicep porque ele oferece as mesmas funcionalidades que os modelos do ARM e a sintaxe é mais fácil de usar. Para saber mais, confira a função lógica bool e os operadores lógicos.
e
and(arg1, arg2, ...)
Verifica se todos os valores de parâmetros são verdadeiros.
Não há suporte para a função and
no Bicep. Use o operador && em vez disso.
Parâmetros
Parâmetro | Obrigatório | Type | Descrição |
---|---|---|---|
arg1 | Sim | booleano | O primeiro valor para verificar se é verdadeiro. |
arg2 | Sim | booleano | O segundo valor para verificar se é verdadeiro. |
mais argumentos | Não | booleano | Argumentos adicionais para verificar se são verdadeiros. |
Valor retornado
Retorna True se todos os valores forem verdadeiros; caso contrário, False.
Exemplos
O exemplo a seguir mostra como usar funções 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'))]"
}
}
}
O resultado do exemplo anterior é:
Nome | Tipo | Valor |
---|---|---|
andExampleOutput | Bool | Falso |
orExampleOutput | Bool | True |
notExampleOutput | Bool | Falso |
bool
bool(arg1)
Converte o parâmetro em um booliano.
Para arquivos Bicep, use a função lógica bool.
Parâmetros
Parâmetro | Obrigatório | Type | Descrição |
---|---|---|---|
arg1 | Sim | cadeia de caracteres ou inteiro | O valor a ser convertido em um booliano. |
Valor retornado
Um booliano do valor convertido.
Comentários
Você também pode usar true() e false() para obter valores boolianos.
Exemplos
O exemplo a seguir mostra como usar um booliano com uma cadeia de caracteres ou um inteiro.
{
"$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)]"
}
}
}
A saída do exemplo anterior com os valores padrão é:
Nome | Tipo | Valor |
---|---|---|
trueString | Bool | True |
falseString | Bool | Falso |
trueInt | Bool | True |
falseInt | Bool | Falso |
false
false()
Retorna false.
A função false
não está disponível no Bicep. Em vez disso, use a palavra-chave false
.
Parâmetros
A função false não aceita nenhum parâmetro.
Valor retornado
Um booliano que é sempre falso.
Exemplo
O exemplo a seguir retorna um valor de saída 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()]"
}
}
}
O resultado do exemplo anterior é:
Nome | Tipo | Valor |
---|---|---|
falseOutput | Bool | Falso |
if
if(condition, trueValue, falseValue)
Retorna um valor com base em se uma condição é verdadeira ou falsa.
Não há suporte para a função if
no Bicep. Use o operador ?: em vez disso.
Parâmetros
Parâmetro | Obrigatório | Type | Descrição |
---|---|---|---|
condition | Sim | booleano | O valor para verificar se é true ou false. |
trueValue | Sim | cadeia de caracteres, inteiro, objeto ou matriz | O valor a ser retornado quando a condição é verdadeira. |
falseValue | Sim | cadeia de caracteres, inteiro, objeto ou matriz | O valor a ser retornado quando a condição é falsa. |
Valor retornado
Retorna o segundo parâmetro quando o primeiro parâmetro é True; caso contrário, retorna o terceiro parâmetro.
Comentários
Quando a condição for True, somente o valor verdadeiro será avaliado. Quando a condição for False, somente o valor falso será avaliado. Com a função if
, você pode incluir expressões que são apenas condicionalmente válidas. Por exemplo, você pode fazer referência a um recurso que existe sob uma condição, mas não sob a outra condição. Um exemplo de avaliação condicional de expressões é mostrado na seção a seguir.
Exemplos
O exemplo a seguir mostra como usar a função 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'))]"
}
}
}
O resultado do exemplo anterior é:
Nome | Tipo | Valor |
---|---|---|
yesOutput | String | sim |
noOutput | String | não |
objectOutput | Objeto | { "test": "value1" } |
O modelo de exemplo a seguir mostra como usar essa função com expressões que só são válidas condicionalmente.
{
"$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)
Converte o valor booliano em seu valor oposto.
Não há suporte para a função not
no Bicep. Use o operador ! em vez disso.
Parâmetros
Parâmetro | Obrigatório | Type | Descrição |
---|---|---|---|
arg1 | Sim | booleano | O valor a ser convertido. |
Valor retornado
Retorna True quando o parâmetro é False. Retorna False quando o parâmetro é True.
Exemplos
O exemplo a seguir mostra como usar funções 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'))]"
}
}
}
O resultado do exemplo anterior é:
Nome | Tipo | Valor |
---|---|---|
andExampleOutput | Bool | Falso |
orExampleOutput | Bool | True |
notExampleOutput | Bool | Falso |
O exemplo a seguir usa not
com 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))]"
}
}
}
O resultado do exemplo anterior é:
Nome | Tipo | Valor |
---|---|---|
checkNotEquals | Bool | True |
ou
or(arg1, arg2, ...)
Verifica se qualquer valor do parâmetro é verdadeiro.
Não há suporte para a função or
no Bicep. Use o operador || em vez disso.
Parâmetros
Parâmetro | Obrigatório | Type | Descrição |
---|---|---|---|
arg1 | Sim | booleano | O primeiro valor para verificar se é verdadeiro. |
arg2 | Sim | booleano | O segundo valor para verificar se é verdadeiro. |
mais argumentos | Não | booleano | Argumentos adicionais para verificar se são verdadeiros. |
Valor retornado
Retorna True se qualquer valor for verdadeiro; caso contrário, False.
Exemplos
O exemplo a seguir mostra como usar funções 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'))]"
}
}
}
O resultado do exemplo anterior é:
Nome | Tipo | Valor |
---|---|---|
andExampleOutput | Bool | Falso |
orExampleOutput | Bool | True |
notExampleOutput | Bool | Falso |
true
true()
Retorna verdadeiro.
A função true
não está disponível no Bicep. Em vez disso, use a palavra-chave true
.
Parâmetros
A função true não aceita nenhum parâmetro.
Valor retornado
Um booliano que é sempre verdadeiro.
Exemplo
O exemplo a seguir retorna um valor de saída verdadeiro.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"trueOutput": {
"type": "bool",
"value": "[true()]"
}
}
}
O resultado do exemplo anterior é:
Nome | Tipo | Valor |
---|---|---|
trueOutput | Bool | True |
Próximas etapas
- Para obter uma descrição das seções de um modelo do ARM, confira Entender a estrutura e a sintaxe dos modelos do ARM.