Teilen über


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