Logiska funktioner för ARM-mallar
Resource Manager innehåller flera funktioner för att göra jämförelser i din Azure Resource Manager-mall (ARM-mall):
Dricks
Vi rekommenderar Bicep eftersom det erbjuder samma funktioner som ARM-mallar och syntaxen är enklare att använda. Mer information finns i den logiska funktionen bool och logiska operatorer.
och
and(arg1, arg2, ...)
Kontrollerar om alla parametervärden är sanna.
Funktionen and
stöds inte i Bicep. Använd &-operatorn i stället.
Parametrar
Parameter | Obligatoriskt | Type | Beskrivning |
---|---|---|---|
arg1 | Ja | boolean | Det första värdet för att kontrollera om är sant. |
arg2 | Ja | boolean | Det andra värdet för att kontrollera om är sant. |
fler argument | Nej | boolean | Fler argument för att kontrollera om är sanna. |
Returvärde
Returnerar Sant om alla värden är sanna, annars False.
Exempel
I följande exempel visas hur du använder logiska funktioner.
{
"$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'))]"
}
}
}
Utdata från föregående exempel är:
Namn | Typ | Värde |
---|---|---|
andExampleOutput | Bool | Falsk |
orExampleOutput | Bool | Sant |
notExampleOutput | Bool | Falsk |
bool
bool(arg1)
Konverterar parametern till ett booleskt värde.
I Bicep använder du den logiska funktionen bool .
Parametrar
Parameter | Obligatoriskt | Type | Beskrivning |
---|---|---|---|
arg1 | Ja | sträng eller int | Värdet som ska konverteras till ett booleskt värde. |
Returvärde
Ett booleskt värde för det konverterade värdet.
Kommentarer
Du kan också använda true() och false() för att hämta booleska värden.
Exempel
I följande exempel visas hur du använder bool med en sträng eller ett heltal.
{
"$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)]"
}
}
}
Utdata från föregående exempel med standardvärdena är:
Namn | Typ | Värde |
---|---|---|
trueString | Bool | Sant |
falseString | Bool | Falsk |
trueInt | Bool | Sant |
falseInt | Bool | Falsk |
falskt
false()
Returnerar false.
Funktionen false
är inte tillgänglig i Bicep. Använd nyckelordet false
i stället.
Parametrar
Funktionen false accepterar inga parametrar.
Returvärde
Ett booleskt värde som alltid är falskt.
Exempel
I följande exempel returneras ett falskt utdatavärde.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"falseOutput": {
"type": "bool",
"value": "[false()]"
}
}
}
Utdata från föregående exempel är:
Namn | Typ | Värde |
---|---|---|
falseOutput | Bool | Falsk |
if
if(condition, trueValue, falseValue)
Returnerar ett värde baserat på om ett villkor är sant eller falskt.
Funktionen if
stöds inte i Bicep. Använd operatorn ?: i stället.
Parametrar
Parameter | Obligatoriskt | Type | Beskrivning |
---|---|---|---|
villkor | Ja | boolean | Värdet för att kontrollera om det är sant eller falskt. |
trueValue | Ja | sträng, int, objekt eller matris | Värdet som ska returneras när villkoret är sant. |
falseValue | Ja | sträng, int, objekt eller matris | Värdet som ska returneras när villkoret är falskt. |
Returvärde
Returnerar den andra parametern när den första parametern är True. Annars returneras den tredje parametern.
Kommentarer
När villkoret är Sant utvärderas endast det sanna värdet. När villkoret är False utvärderas endast värdet false. if
Med funktionen kan du inkludera uttryck som endast är villkorligt giltiga. Du kan till exempel referera till en resurs som finns under ett villkor men inte under det andra villkoret. Ett exempel på villkorlig utvärdering av uttryck visas i följande avsnitt.
Exempel
I följande exempel visas hur du if
använder funktionen.
{
"$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'))]"
}
}
}
Utdata från föregående exempel är:
Namn | Typ | Värde |
---|---|---|
yesOutput | String | ja |
noOutput | String | nej |
objectOutput | Objekt | { "test": "value1" } |
Följande exempelmall visar hur du använder den här funktionen med uttryck som endast är villkorligt giltiga.
{
"$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)
Konverterar booleskt värde till dess motsatta värde.
Funktionen not
stöds inte i Bicep. Använd operatorn ! i stället.
Parametrar
Parameter | Obligatoriskt | Type | Beskrivning |
---|---|---|---|
arg1 | Ja | boolean | Värdet som ska konverteras. |
Returvärde
Returnerar Sant när parametern är False. Returnerar False när parametern är True.
Exempel
I följande exempel visas hur du använder logiska funktioner.
{
"$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'))]"
}
}
}
Utdata från föregående exempel är:
Namn | Typ | Värde |
---|---|---|
andExampleOutput | Bool | Falsk |
orExampleOutput | Bool | Sant |
notExampleOutput | Bool | Falsk |
I följande exempel används not
med lika med.
{
"$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))]"
}
}
}
Utdata från föregående exempel är:
Namn | Typ | Värde |
---|---|---|
checkNotEquals | Bool | Sant |
eller
or(arg1, arg2, ...)
Kontrollerar om ett parametervärde är sant.
Funktionen or
stöds inte i Bicep. Använd operatorn || i stället.
Parametrar
Parameter | Obligatoriskt | Type | Beskrivning |
---|---|---|---|
arg1 | Ja | boolean | Det första värdet för att kontrollera om är sant. |
arg2 | Ja | boolean | Det andra värdet för att kontrollera om är sant. |
fler argument | Nej | boolean | Fler argument för att kontrollera om är sanna. |
Returvärde
Returnerar Sant om något värde är sant, annars Falskt.
Exempel
I följande exempel visas hur du använder logiska funktioner.
{
"$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'))]"
}
}
}
Utdata från föregående exempel är:
Namn | Typ | Värde |
---|---|---|
andExampleOutput | Bool | Falsk |
orExampleOutput | Bool | Sant |
notExampleOutput | Bool | Falsk |
true
true()
Returnerar "sant".
Funktionen true
är inte tillgänglig i Bicep. Använd nyckelordet true
i stället.
Parametrar
Den sanna funktionen accepterar inga parametrar.
Returvärde
Ett booleskt värde som alltid är sant.
Exempel
I följande exempel returneras ett sant utdatavärde.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"trueOutput": {
"type": "bool",
"value": "[true()]"
}
}
}
Utdata från föregående exempel är:
Namn | Typ | Värde |
---|---|---|
trueOutput | Bool | Sant |
Nästa steg
- En beskrivning av avsnitten i en ARM-mall finns i Förstå strukturen och syntaxen för ARM-mallar.