Srovnávací funkce pro šablony ARM
Resource Manager nabízí několik funkcí pro porovnání v šabloně Azure Resource Manageru (šablona ARM):
Tip
Doporučujeme Bicep, protože nabízí stejné možnosti jako šablony ARM a syntaxe se snadněji používá. Další informace najdete v operátorech pro sjednocení logických operátorů a relačních operátorů.
splynout
coalesce(arg1, arg2, arg3, ...)
Vrátí první hodnotu, která není null z parametrů. Prázdné řetězce, prázdné pole a prázdné objekty nejsou null.
V Bicep místo toho použijte ??
operátor. Viz Coalesce ??.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
arg1 | Ano | int, string, array nebo object | První hodnota, která se má testovat s hodnotou null. |
více args | No | int, string, array nebo object | Další hodnoty k otestování hodnoty null. |
Vrácená hodnota
Hodnota prvních parametrů, které nejsou null, což může být řetězec, int, matice nebo objekt. Null, pokud jsou všechny parametry null.
Příklad
Následující příklad šablony ukazuje výstup z různých použití 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))]"
}
}
}
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
stringOutput | String | default |
intOutput | Int | 0 |
objectOutput | Object | {"first": "default"} |
arrayOutput | Pole | [1] |
emptyOutput | Bool | True |
rovná se
equals(arg1, arg2)
Zkontroluje, jestli jsou dvě hodnoty identické. V porovnání se rozlišují malá a velká písmena.
V Bicep místo toho použijte ==
operátor. Viz rovná se ==.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
arg1 | Ano | int, string, array nebo object | První hodnota, která se má zkontrolovat rovnost. |
arg2 | Ano | int, string, array nebo object | Druhá hodnota, která zkontroluje rovnost. |
Vrácená hodnota
Vrátí hodnotu True , pokud jsou hodnoty stejné. V opačném případě vrátí hodnotu False.
Poznámky
Funkce equals se často používá s prvkem condition
k otestování, zda je prostředek nasazen.
{
"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": {}
}
Příklad
Následující příklad kontroluje různé typy hodnot rovnosti. Všechny výchozí hodnoty vrátí hodnotu 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'))]"
}
}
}
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota | Poznámka: |
---|---|---|---|
checkInts | Bool | True | |
checkStrings | Bool | False | Výsledkem je false , že porovnání rozlišují malá a velká písmena. |
checkArrays | Bool | True | |
checkObjects | Bool | True |
Následující příklad šablony používá nerovná se.
{
"$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))]"
}
}
}
Výstup z předchozího příkladu je:
Name | Typ | Hodnota |
---|---|---|
checkNotEquals | Bool | True |
greater
greater(arg1, arg2)
Zkontroluje, jestli je první hodnota větší než druhá hodnota.
V Bicep místo toho použijte >
operátor. Viz Větší než >.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
arg1 | Ano | int nebo string | První hodnota pro větší porovnání. |
arg2 | Ano | int nebo string | Druhá hodnota pro větší porovnání. |
Vrácená hodnota
Vrátí hodnotu True , pokud je první hodnota větší než druhá hodnota; v opačném případě false.
Příklad
Následující příklad zkontroluje, zda je jedna hodnota větší než druhá.
{
"$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'))]"
}
}
}
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
checkInts | Bool | False |
checkStrings | Bool | True |
greaterOrEquals
greaterOrEquals(arg1, arg2)
Zkontroluje, jestli je první hodnota větší nebo rovna druhé hodnotě.
V Bicep místo toho použijte >=
operátor. Viz Větší než nebo rovno >=.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
arg1 | Ano | int nebo string | První hodnota pro větší nebo stejné porovnání. |
arg2 | Ano | int nebo string | Druhá hodnota pro větší nebo stejné porovnání. |
Vrácená hodnota
Vrátí hodnotu True , pokud je první hodnota větší nebo rovna druhé hodnotě; jinak False.
Příklad
Následující příklad zkontroluje, zda je jedna hodnota větší nebo rovna druhé.
{
"$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'))]"
}
}
}
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
checkInts | Bool | False |
checkStrings | Bool | True |
less
less(arg1, arg2)
Zkontroluje, jestli je první hodnota menší než druhá hodnota.
V Bicep místo toho použijte <
operátor. Viz Menší než <.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
arg1 | Ano | int nebo string | První hodnota pro menší porovnání. |
arg2 | Ano | int nebo string | Druhá hodnota pro menší porovnání. |
Vrácená hodnota
Vrátí hodnotu True , pokud je první hodnota menší než druhá hodnota. V opačném případě vrátí hodnotu False.
Příklad
Následující příklad zkontroluje, zda je jedna hodnota menší než druhá.
{
"$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'))]"
}
}
}
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
checkInts | Bool | True |
checkStrings | Bool | False |
lessOrEquals
lessOrEquals(arg1, arg2)
Zkontroluje, jestli je první hodnota menší nebo rovna druhé hodnotě.
V Bicep místo toho použijte <=
operátor. Viz Menší než nebo rovno <=.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
arg1 | Ano | int nebo string | První hodnota pro menší nebo rovnou porovnání. |
arg2 | Ano | int nebo string | Druhá hodnota menšího nebo rovnou porovnání. |
Vrácená hodnota
Vrátí hodnotu True , pokud je první hodnota menší nebo rovna druhé hodnotě; v opačném případě false.
Příklad
Následující příklad zkontroluje, zda je jedna hodnota menší nebo rovna druhé.
{
"$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'))]"
}
}
}
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
checkInts | Bool | True |
checkStrings | Bool | False |
Další kroky
- Popis oddílů v šabloně ARM najdete v tématu Vysvětlení struktury a syntaxe šablon ARM.