Funkcje porównania dla szablonów usługi ARM

Resource Manager udostępnia kilka funkcji do porównywania szablonu usługi Azure Resource Manager (szablon usługi ARM):

Porada

Zalecamy Bicep , ponieważ oferuje te same możliwości co szablony usługi ARM, a składnia jest łatwiejsza w użyciu. Aby dowiedzieć się więcej, zobacz operator logiczny łączenia i operatory porównania .

Łączonej

coalesce(arg1, arg2, arg3, ...)

Zwraca pierwszą wartość inną niż null z parametrów. Puste ciągi, puste tablice i puste obiekty nie mają wartości null.

W Bicep zamiast tego użyj ?? operatora . Zobacz Coalesce ??.

Parametry

Parametr Wymagane Typ Opis
arg1 Tak int, string, array lub object Pierwsza wartość do przetestowania pod kątem wartości null.
więcej args Nie int, string, array lub object Więcej wartości do przetestowania pod kątem wartości null.

Wartość zwracana

Wartość pierwszych parametrów innych niż null, które mogą być ciągiem, int, tablicą lub obiektem. Null, jeśli wszystkie parametry mają wartość null.

Przykład

Poniższy przykładowy szablon przedstawia dane wyjściowe z różnych zastosowań łączenia.

{
  "$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))]"
    }
  }
}

Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:

Nazwa Typ Wartość
stringOutput Ciąg default
intOutput int 1
objectOutput Obiekt {"first": "default"}
arrayOutput Tablica  [1]
emptyOutput Wartość logiczna Prawda

equals

equals(arg1, arg2)

Sprawdza, czy dwie wartości są równe sobie nawzajem.

W Bicep zamiast tego użyj == operatora . Zobacz Equals ==.

Parametry

Parametr Wymagane Typ Opis
arg1 Tak int, string, array lub object Pierwsza wartość do sprawdzenia równości.
arg2 Tak int, string, array lub object Druga wartość do sprawdzenia równości.

Wartość zwracana

Zwraca wartość True , jeśli wartości są równe; w przeciwnym razie wartość False.

Uwagi

Funkcja equals jest często używana z elementem condition do testowania, czy zasób jest wdrażany.

{
  "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": {}
}

Przykład

Poniższy przykład sprawdza różne typy wartości pod kątem równości. Wszystkie wartości domyślne zwracają wartość True.

{
  "$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": "a"
    },
    "secondString": {
      "type": "string",
      "defaultValue": "a"
    },
    "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'))]"
    }
  }
}

Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:

Nazwa Typ Wartość
checkInts Wartość logiczna Prawda
checkStrings Wartość logiczna Prawda
checkArrays Wartość logiczna Prawda
checkObjects Wartość logiczna Prawda

Poniższy przykładowy szablon używa wartości nierównej.

{
  "$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))]"
    }
  }
}

Dane wyjściowe z poprzedniego przykładu to:

Nazwa Typ Wartość
checkNotEquals Wartość logiczna Prawda

greater

greater(arg1, arg2)

Sprawdza, czy pierwsza wartość jest większa niż druga wartość.

W Bicep zamiast tego użyj > operatora . Zobacz Większe niż >.

Parametry

Parametr Wymagane Typ Opis
arg1 Tak int lub ciąg Pierwsza wartość dla większego porównania.
arg2 Tak int lub ciąg Druga wartość dla większego porównania.

Wartość zwracana

Zwraca wartość True , jeśli pierwsza wartość jest większa niż druga wartość; w przeciwnym razie wartość False.

Przykład

Poniższy przykład sprawdza, czy jedna wartość jest większa niż druga.

{
  "$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'))]"
    }
  }
}

Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:

Nazwa Typ Wartość
checkInts Wartość logiczna Fałsz
checkStrings Wartość logiczna Prawda

greaterOrEquals

greaterOrEquals(arg1, arg2)

Sprawdza, czy pierwsza wartość jest większa, czy równa drugiej wartości.

W Bicep zamiast tego użyj >= operatora . Zobacz Większe niż lub równe >=.

Parametry

Parametr Wymagane Typ Opis
arg1 Tak int lub ciąg Pierwsza wartość dla większego lub równego porównania.
arg2 Tak int lub ciąg Druga wartość dla większego lub równego porównania.

Wartość zwracana

Zwraca wartość True , jeśli pierwsza wartość jest większa lub równa drugiej wartości; w przeciwnym razie wartość False.

Przykład

Poniższy przykład sprawdza, czy jedna wartość jest większa, czy równa drugiej.

{
  "$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'))]"
    }
  }
}

Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:

Nazwa Typ Wartość
checkInts Wartość logiczna Fałsz
checkStrings Wartość logiczna Prawda

less

less(arg1, arg2)

Sprawdza, czy pierwsza wartość jest mniejsza niż druga wartość.

W Bicep zamiast tego użyj < operatora . Zobacz Wartość Mniejsza niż <.

Parametry

Parametr Wymagane Typ Opis
arg1 Tak int lub ciąg Pierwsza wartość dla mniejszego porównania.
arg2 Tak int lub ciąg Druga wartość dla mniejszego porównania.

Wartość zwracana

Zwraca wartość True , jeśli pierwsza wartość jest mniejsza niż druga wartość; w przeciwnym razie wartość False.

Przykład

Poniższy przykład sprawdza, czy jedna wartość jest mniejsza niż druga.

{
  "$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'))]"
    }
  }
}

Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:

Nazwa Typ Wartość
checkInts Wartość logiczna Prawda
checkStrings Wartość logiczna Fałsz

lessOrEquals

lessOrEquals(arg1, arg2)

Sprawdza, czy pierwsza wartość jest mniejsza, czy równa drugiej wartości.

W Bicep zamiast tego użyj <= operatora . Zobacz Mniejsze niż lub równe <=.

Parametry

Parametr Wymagane Typ Opis
arg1 Tak int lub ciąg Pierwsza wartość dla porównania mniejszego lub równego.
arg2 Tak int lub ciąg Druga wartość dla porównania mniejszego lub równego.

Wartość zwracana

Zwraca wartość True , jeśli pierwsza wartość jest mniejsza lub równa drugiej wartości; w przeciwnym razie wartość False.

Przykład

Poniższy przykład sprawdza, czy jedna wartość jest mniejsza, czy równa drugiej.

{
  "$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'))]"
    }
  }
}

Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:

Nazwa Typ Wartość
checkInts Wartość logiczna Prawda
checkStrings Wartość logiczna Fałsz

Następne kroki