Logikfunktionen für ARM-Vorlagen
Resource Manager stellt mehrere Funktionen zum Durchführen von Vergleichen in Ihren Azure Resource Manager-Vorlagen (ARM-Vorlagen) bereit:
Tipp
Wir empfehlen Bicep, weil es dieselben Funktionen wie ARM-Vorlagen bietet und die Syntax einfacher zu verwenden ist. Weitere Informationen finden Sie unter der logischen bool-Funktion und unter logische Operatoren.
und
and(arg1, arg2, ...)
Überprüft, ob alle Parameterwerte zutreffen.
Die and
-Funktion wird in Bicep nicht unterstützt. Verwenden Sie stattdessen den &&-Operator.
Parameter
Parameter | Erforderlich | Type | BESCHREIBUNG |
---|---|---|---|
arg1 | Ja | boolean | Der erste Wert, für den überprüft wird, ob er zutrifft. |
arg2 | Ja | boolean | Der zweite Wert, für den überprüft wird, ob er zutrifft. |
Mehr Argumente | Nein | boolean | Mehr Argumente, für die überprüft wird, ob sie zutreffen. |
Rückgabewert
Gibt True zurück, wenn alle Werte zutreffen. Andernfalls wird False zurückgegeben.
Beispiele
Das folgende Beispiel zeigt die Verwendung logischer Funktionen.
{
"$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'))]"
}
}
}
Die Ausgabe aus dem vorherigen Beispiel lautet wie folgt:
Name | type | Wert |
---|---|---|
andExampleOutput | Bool | False |
orExampleOutput | Bool | True |
notExampleOutput | Bool | False |
bool
bool(arg1)
Konvertiert den Parameter in einen booleschen Wert.
Verwenden Sie in Bicep die logische bool-Funktion.
Parameter
Parameter | Erforderlich | Type | BESCHREIBUNG |
---|---|---|---|
arg1 | Ja | Zeichenfolge oder ganze Zahl | Der Wert, der in einen booleschen Wert konvertiert werden soll. |
Rückgabewert
Ein boolescher Wert des konvertierten Werts.
Bemerkungen
Sie können auch true() und false() verwenden, um boolesche Werte zu erhalten.
Beispiele
Im folgenden Beispiel wird gezeigt, wie „bool“ mit einer Zeichenfolge oder ganzen Zahl verwendet wird.
{
"$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)]"
}
}
}
Die Ausgabe aus dem vorherigen Beispiel mit den Standardwerten lautet:
Name | type | Wert |
---|---|---|
trueString | Bool | True |
falseString | Bool | False |
trueInt | Bool | True |
falseInt | Bool | False |
false
false()
Gibt false zurück.
Die Funktion false
ist in Bicep nicht verfügbar. Verwenden Sie stattdessen das Schlüsselwort false
.
Parameter
Die Funktion „false“ akzeptiert keine Parameter.
Rückgabewert
Ein boolescher Wert, der immer „false“ lautet.
Beispiel
Im folgenden Beispiel wird ein Ausgabewert „false“ zurückgegeben.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"falseOutput": {
"type": "bool",
"value": "[false()]"
}
}
}
Die Ausgabe aus dem vorherigen Beispiel lautet wie folgt:
Name | type | Wert |
---|---|---|
falseOutput | Bool | False |
if
if(condition, trueValue, falseValue)
Gibt einen Wert abhängig davon zurück, ob eine Bedingung zutrifft oder nicht.
Die if
-Funktion wird in Bicep nicht unterstützt. Verwenden Sie stattdessen den ?:-Operator.
Parameter
Parameter | Erforderlich | Type | BESCHREIBUNG |
---|---|---|---|
condition | Ja | boolean | Der Wert, für den überprüft wird, ob er zutrifft oder nicht. |
trueValue | Ja | Zeichenfolge, Integer, Objekt oder Array | Der zurückzugebende Wert, wenn die Bedingung zutrifft. |
falseValue | Ja | Zeichenfolge, Integer, Objekt oder Array | Der zurückzugebende Wert, wenn die Bedingung nicht zutrifft. |
Rückgabewert
Gibt den zweiten Parameter zurück, wenn der erste Parameter True ist, andernfalls wird der dritte Parameter zurückgegeben.
Bemerkungen
Wenn die Bedingung zutrifft (True), wird nur der Wert „True“ ausgewertet. Wenn die Bedingung nicht zutrifft (False), wird nur der Wert „False“ ausgewertet. Mit der if
-Funktion („Wenn“) können Sie Ausdrücke einschließen, die nur bedingt gültig sind. Beispielsweise können Sie auf eine Ressource verweisen, die unter der einen Bedingung, nicht aber unter der anderen Bedingung vorhanden ist. Ein Beispiel für die bedingte Auswertung von Ausdrücken wird im nächsten Abschnitt gezeigt.
Beispiele
Das folgende Beispiel zeigt die Verwendung der Funktion 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'))]"
}
}
}
Die Ausgabe aus dem vorherigen Beispiel lautet wie folgt:
Name | type | Wert |
---|---|---|
yesOutput | String | ja |
noOutput | Zeichenfolge | nein |
objectOutput | Object | { "test": "value1" } |
In der folgenden Beispielvorlage wird gezeigt, wie Sie diese Funktion mit Ausdrücken verwenden, die nur bedingt gültig sind.
{
"$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)
Konvertiert den booleschen Wert in seinen gegenteiligen Wert.
Die not
-Funktion wird in Bicep nicht unterstützt. Verwenden Sie stattdessen den !-Operator.
Parameter
Parameter | Erforderlich | Type | BESCHREIBUNG |
---|---|---|---|
arg1 | Ja | boolean | Der zu konvertierende Wert. |
Rückgabewert
Gibt True zurück, wenn der Parameter False ist. Gibt False zurück, wenn der Parameter True ist.
Beispiele
Das folgende Beispiel zeigt die Verwendung logischer Funktionen.
{
"$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'))]"
}
}
}
Die Ausgabe aus dem vorherigen Beispiel lautet wie folgt:
Name | type | Wert |
---|---|---|
andExampleOutput | Bool | False |
orExampleOutput | Bool | True |
notExampleOutput | Bool | False |
Im folgenden Beispiel wird not
mit equals (gleich) verwendet.
{
"$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))]"
}
}
}
Die Ausgabe aus dem vorherigen Beispiel lautet wie folgt:
Name | type | Wert |
---|---|---|
checkNotEquals | Bool | True |
oder
or(arg1, arg2, ...)
Überprüft, ob einer der Parameterwerte zutrifft.
Die or
-Funktion wird in Bicep nicht unterstützt. Verwenden Sie stattdessen den ||-Operator.
Parameter
Parameter | Erforderlich | Type | BESCHREIBUNG |
---|---|---|---|
arg1 | Ja | boolean | Der erste Wert, für den überprüft wird, ob er zutrifft. |
arg2 | Ja | boolean | Der zweite Wert, für den überprüft wird, ob er zutrifft. |
Mehr Argumente | Nein | boolean | Mehr Argumente, für die überprüft wird, ob sie zutreffen. |
Rückgabewert
Gibt True zurück, wenn einer der Werte zutrifft. Andernfalls wird False zurückgegeben.
Beispiele
Das folgende Beispiel zeigt die Verwendung logischer Funktionen.
{
"$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'))]"
}
}
}
Die Ausgabe aus dem vorherigen Beispiel lautet wie folgt:
Name | type | Wert |
---|---|---|
andExampleOutput | Bool | False |
orExampleOutput | Bool | True |
notExampleOutput | Bool | False |
true
true()
Gibt true zurück.
Die Funktion true
ist in Bicep nicht verfügbar. Verwenden Sie stattdessen das Schlüsselwort true
.
Parameter
Die Funktion „true“ akzeptiert keine Parameter.
Rückgabewert
Ein boolescher Wert, der immer „true“ lautet.
Beispiel
Im folgenden Beispiel wird ein Ausgabewert „true“ zurückgegeben.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"trueOutput": {
"type": "bool",
"value": "[true()]"
}
}
}
Die Ausgabe aus dem vorherigen Beispiel lautet wie folgt:
Name | type | Wert |
---|---|---|
trueOutput | Bool | True |
Nächste Schritte
- Eine Beschreibung der Abschnitte in einer ARM-Vorlage finden Sie unter Grundlegendes zur Struktur und Syntax von ARM-Vorlagen.