Vergleichsfunktionen 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 dem logischen coalesce-Operator (zusammenfügen) und unter Vergleichsoperatoren.
coalesce
coalesce(arg1, arg2, arg3, ...)
Gibt den ersten Wert aus den Parametern zurück, der nicht NULL ist. Leere Zeichenfolgen, leere Arrays und leere Objekte sind nicht NULL.
In Bicep verwenden Sie stattdessen den Operator ??
. Siehe Coalesce ??.
Parameter
Parameter | Erforderlich | Type | BESCHREIBUNG |
---|---|---|---|
arg1 | Ja | int, string, array oder object | Der erste Wert, der auf NULL getestet werden soll. |
weitere Argumente | Nein | int, string, array oder object | Weitere Werte zur Prüfung auf Null. |
Rückgabewert
Der Wert des ersten Parameters ungleich NULL, der Zeichenfolge, ganze Zahl, Array oder Objekt sein kann. NULL, wenn alle Parameter NULL sind.
Beispiel
Die folgende Beispielvorlage zeigt die Ausgabe bei unterschiedlichen Verwendungen von „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))]"
}
}
}
Die Ausgabe aus dem vorherigen Beispiel mit den Standardwerten lautet:
Name | type | Wert |
---|---|---|
stringOutput | String | default |
intOutput | Int | 1 |
objectOutput | Object | {"first": "default"} |
arrayOutput | Array | [1] |
emptyOutput | Bool | True |
equals
equals(arg1, arg2)
Überprüft, ob zwei Werte identisch sind. Beim Vergleich wird die Groß-/Kleinschreibung beachtet.
In Bicep verwenden Sie stattdessen den Operator ==
. Siehe Equals ==.
Parameter
Parameter | Erforderlich | Type | BESCHREIBUNG |
---|---|---|---|
arg1 | Ja | int, string, array oder object | Der erste auf Gleichheit zu überprüfende Wert. |
arg2 | Ja | int, string, array oder object | Der zweite auf Gleichheit zu überprüfende Wert. |
Rückgabewert
Gibt True zurück, wenn die Werte gleich sind. Andernfalls wird False zurückgegeben.
Hinweise
Die Funktion „equals“ wird häufig mit dem Element condition
verwendet, um zu prüfen, ob eine Ressource bereitgestellt wurde.
{
"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": {}
}
Beispiel
Im folgenden Beispiel werden verschiedene Arten von Werten auf Gleichheit geprüft. Alle Standardwerte geben „True“ zurück.
{
"$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": "demo"
},
"secondString": {
"type": "string",
"defaultValue": "Demo"
},
"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'))]"
}
}
}
Die Ausgabe aus dem vorherigen Beispiel mit den Standardwerten lautet:
Name | type | Wert | Hinweis |
---|---|---|---|
checkInts | Bool | True | |
checkStrings | Bool | False | Das Ergebnis liegt false daran, dass bei dem Vergleich die Groß-/Kleinschreibung beachtet wird. |
checkArrays | Bool | True | |
checkObjects | Bool | True |
In der folgenden Beispielvorlage wird not mit „equals“ 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 |
greater
greater(arg1, arg2)
Überprüft, ob der erste Wert größer als der zweite Wert ist.
In Bicep verwenden Sie stattdessen den Operator >
. Siehe Größer als >.
Parameter
Parameter | Erforderlich | Type | BESCHREIBUNG |
---|---|---|---|
arg1 | Ja | Ganz Zahl oder Zeichenfolge | Der erste Wert für den Vergleich vom Typ „Größer als“. |
arg2 | Ja | Ganz Zahl oder Zeichenfolge | Der zweite Wert für den Vergleich vom Typ „Größer als“. |
Rückgabewert
Gibt True zurück, wenn der erste Wert größer als der zweite Wert ist. Andernfalls wird False zurückgegeben.
Beispiel
Im folgenden Beispiel wird geprüft, ob der eine Wert größer als der andere ist.
{
"$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'))]"
}
}
}
Die Ausgabe aus dem vorherigen Beispiel mit den Standardwerten lautet:
Name | type | Wert |
---|---|---|
checkInts | Bool | False |
checkStrings | Bool | True |
greaterOrEquals
greaterOrEquals(arg1, arg2)
Überprüft, ob der erste Wert größer als oder gleich Wert 2 ist.
In Bicep verwenden Sie stattdessen den Operator >=
. Siehe Größer als oder gleich >=.
Parameter
Parameter | Erforderlich | Type | BESCHREIBUNG |
---|---|---|---|
arg1 | Ja | Ganz Zahl oder Zeichenfolge | Der erste Wert für den Vergleich vom Typ „Größer als oder gleich“. |
arg2 | Ja | Ganz Zahl oder Zeichenfolge | Der zweite Wert für den Vergleich vom Typ „Größer als oder gleich“. |
Rückgabewert
Gibt True zurück, wenn der erste Wert größer als oder gleich Wert 2 ist. Andernfalls wird False zurückgegeben.
Beispiel
Im folgenden Beispiel wird geprüft, ob der eine Wert größer oder gleich dem anderen ist.
{
"$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'))]"
}
}
}
Die Ausgabe aus dem vorherigen Beispiel mit den Standardwerten lautet:
Name | type | Wert |
---|---|---|
checkInts | Bool | False |
checkStrings | Bool | True |
less
less(arg1, arg2)
Überprüft, ob der erste Wert kleiner als der zweite Wert ist.
In Bicep verwenden Sie stattdessen den Operator <
. Siehe Kleiner als <.
Parameter
Parameter | Erforderlich | Type | BESCHREIBUNG |
---|---|---|---|
arg1 | Ja | Ganz Zahl oder Zeichenfolge | Der erste Wert für den Vergleich vom Typ „Kleiner als“. |
arg2 | Ja | Ganz Zahl oder Zeichenfolge | Der zweite Wert für den Vergleich vom Typ „Kleiner als“. |
Rückgabewert
Gibt True zurück, wenn der erste Wert kleiner als der zweite Wert ist. Andernfalls wird False zurückgegeben.
Beispiel
Im folgenden Beispiel wird geprüft, ob der eine Wert kleiner als der andere ist.
{
"$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'))]"
}
}
}
Die Ausgabe aus dem vorherigen Beispiel mit den Standardwerten lautet:
Name | type | Wert |
---|---|---|
checkInts | Bool | True |
checkStrings | Bool | False |
lessOrEquals
lessOrEquals(arg1, arg2)
Überprüft, ob der erste Wert kleiner als oder gleich Wert 2 ist.
In Bicep verwenden Sie stattdessen den Operator <=
. Siehe Kleiner als oder gleich <=.
Parameter
Parameter | Erforderlich | Type | BESCHREIBUNG |
---|---|---|---|
arg1 | Ja | Ganz Zahl oder Zeichenfolge | Der erste Wert für den Vergleich vom Typ „Kleiner als oder gleich“. |
arg2 | Ja | Ganz Zahl oder Zeichenfolge | Der zweite Wert für den Vergleich vom Typ „Kleiner als oder gleich“. |
Rückgabewert
Gibt True zurück, wenn der erste Wert kleiner als oder gleich Wert 2 ist. Andernfalls wird False zurückgegeben.
Beispiel
Im folgenden Beispiel wird geprüft, ob der eine Wert kleiner oder gleich dem anderen ist.
{
"$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'))]"
}
}
}
Die Ausgabe aus dem vorherigen Beispiel mit den Standardwerten lautet:
Name | type | Wert |
---|---|---|
checkInts | Bool | True |
checkStrings | Bool | False |
Nächste Schritte
- Eine Beschreibung der Abschnitte in einer ARM-Vorlage finden Sie unter Grundlegendes zur Struktur und Syntax von ARM-Vorlagen.