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
- Aby zapoznać się z opisem sekcji w szablonie usługi ARM, zobacz Omówienie struktury i składni szablonów usługi ARM.