Teilen über


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