Udostępnij za pośrednictwem


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

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

Napiwek

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 łączenie operatorów logicznych i operatorów 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 użyj ?? operatora zamiast tego. Zobacz Coalesce ??.

Parametry

Parametr Wymagania Type 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:

Nazwisko Typ Wartość
stringOutput String domyślna
intOutput Int 1
objectOutput Objekt {"first": "default"}
arrayOutput Tablica [1]
emptyOutput Bool Prawda

equals

equals(arg1, arg2)

Sprawdza, czy dwie wartości są identyczne. Porównanie uwzględnia wielkość liter.

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

Parametry

Parametr Wymagania Type 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": "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'))]"
    }
  }
}

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

Nazwisko Typ Wartość Uwaga
checkInts Bool Prawda
checkStrings Bool Fałsz Wynikiem jest false to, że w porównaniu uwzględniana jest wielkość liter.
checkArrays Bool Prawda
checkObjects Bool Prawda

Poniższy przykładowy szablon używa wartości nie ró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:

Nazwisko Typ Wartość
checkNotEquals Bool Prawda

greater

greater(arg1, arg2)

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

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

Parametry

Parametr Wymagania Type 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:

Nazwisko Typ Wartość
checkInts Bool Fałsz
checkStrings Bool Prawda

greaterOrEquals

greaterOrEquals(arg1, arg2)

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

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

Parametry

Parametr Wymagania Type 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:

Nazwisko Typ Wartość
checkInts Bool Fałsz
checkStrings Bool Prawda

less

less(arg1, arg2)

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

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

Parametry

Parametr Wymagania Type 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:

Nazwisko Typ Wartość
checkInts Bool Prawda
checkStrings Bool Fałsz

lessOrEquals

lessOrEquals(arg1, arg2)

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

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

Parametry

Parametr Wymagania Type 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:

Nazwisko Typ Wartość
checkInts Bool Prawda
checkStrings Bool Fałsz

Następne kroki