Funções lógicas 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
Recomendamos o Bicep porque ele oferece os mesmos recursos que os modelos ARM e a sintaxe é mais fácil de usar. Para saber mais, consulte a função lógica bool e os operadores lógicos.
e
and(arg1, arg2, ...)
Verifica se todos os valores de parâmetro são verdadeiros.
A and
função não é suportada no Bicep. Em vez disso, use o operador &s.
Parâmetros
Parâmetro | Necessário | Type | Description |
---|---|---|---|
Arg1 | Sim | boolean | O primeiro valor para verificar se é verdadeiro. |
Arg2 | Sim | boolean | O segundo valor para verificar se é verdadeiro. |
Mais argumentos | Não | boolean | Mais argumentos para verificar se são verdadeiros. |
Valor devolvido
Retorna True se todos os valores forem true, 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'))]"
}
}
}
A saída do exemplo anterior é:
Nome | Tipo | valor |
---|---|---|
eExampleOutput | Bool | False |
ouExemploSaída | Bool | True |
notExampleOutput | Bool | False |
booleano
bool(arg1)
Converte o parâmetro em booleano.
No Bíceps, use a função lógica bool .
Parâmetros
Parâmetro | Necessário | Type | Description |
---|---|---|---|
Arg1 | Sim | string ou int | O valor para converter em um booleano. |
Valor devolvido
Um booleano do valor convertido.
Observações
Você também pode usar true() e false() para obter valores booleanos.
Exemplos
O exemplo a seguir mostra como usar bool com uma cadeia de caracteres ou 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 | False |
trueInt | Bool | True |
falseInt | Bool | False |
false
false()
Retorna false.
A false
função não está disponível no Bicep. Em vez disso, use a false
palavra-chave.
Parâmetros
A função false não aceita nenhum parâmetro.
Valor devolvido
Um booleano 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()]"
}
}
}
A saída do exemplo anterior é:
Nome | Tipo | valor |
---|---|---|
saída falsa | Bool | False |
if
if(condition, trueValue, falseValue)
Retorna um valor com base no fato de uma condição ser verdadeira ou falsa.
A if
função não é suportada no Bicep. Em vez disso, use o operador ?:.
Parâmetros
Parâmetro | Necessário | Type | Description |
---|---|---|---|
condição | Sim | boolean | O valor para verificar se é verdadeiro ou falso. |
trueValue | Sim | string, int, objeto ou matriz | O valor a ser retornado quando a condição for verdadeira. |
falseValue | Sim | string, int, objeto ou matriz | O valor a ser retornado quando a condição for false. |
Valor devolvido
Retorna o segundo parâmetro quando o primeiro parâmetro é True; caso contrário, retorna o terceiro parâmetro.
Observações
Quando a condição é True, apenas o valor verdadeiro é avaliado. Quando a condição é False, apenas o valor false é avaliado. Com a if
função, 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 if
função.
{
"$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'))]"
}
}
}
A saída do exemplo anterior é:
Nome | Tipo | valor |
---|---|---|
SimSaída | Cadeia (de carateres) | sim |
noSaída | String | não |
objectOutput | Object | { "teste": "value1" } |
O modelo de exemplo a seguir mostra como usar essa função com expressões que são apenas condicionalmente válidas.
{
"$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 booleano em seu valor oposto.
A not
função não é suportada no Bicep. Em vez disso, use o operador !.
Parâmetros
Parâmetro | Necessário | Type | Description |
---|---|---|---|
Arg1 | Sim | boolean | O valor a converter. |
Valor devolvido
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'))]"
}
}
}
A saída do exemplo anterior é:
Nome | Tipo | valor |
---|---|---|
eExampleOutput | Bool | False |
ouExemploSaída | Bool | True |
notExampleOutput | Bool | False |
O exemplo a seguir usa not
com equals.
{
"$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 |
ou
or(arg1, arg2, ...)
Verifica se algum valor de parâmetro é verdadeiro.
A or
função não é suportada no Bicep. Em vez disso, use o operador ||.
Parâmetros
Parâmetro | Necessário | Type | Description |
---|---|---|---|
Arg1 | Sim | boolean | O primeiro valor para verificar se é verdadeiro. |
Arg2 | Sim | boolean | O segundo valor para verificar se é verdadeiro. |
Mais argumentos | Não | boolean | Mais argumentos para verificar se são verdadeiros. |
Valor devolvido
Retorna True se qualquer valor for true, 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'))]"
}
}
}
A saída do exemplo anterior é:
Nome | Tipo | valor |
---|---|---|
eExampleOutput | Bool | False |
ouExemploSaída | Bool | True |
notExampleOutput | Bool | False |
verdadeiro
true()
Devolve true.
A true
função não está disponível no Bicep. Em vez disso, use a true
palavra-chave.
Parâmetros
A função true não aceita nenhum parâmetro.
Valor devolvido
Um booleano que é sempre verdade.
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()]"
}
}
}
A saída do exemplo anterior é:
Nome | Tipo | valor |
---|---|---|
trueOutput | Bool | True |
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.