ARM テンプレートの比較関数
Resource Manager には、Azure Resource Manager テンプレート (ARM テンプレート) で比較を行うための関数がいくつか用意されています。
coalesce
coalesce(arg1, arg2, arg3, ...)
パラメーターから最初の null 以外の値を返します。 空の文字列、空の配列、空のオブジェクトは null ではありません。
Bicep では、??
演算子を使用してください。 「Coalesce ?? 」を参照してください。
パラメーター
パラメーター | 必須 | タイプ | 説明 |
---|---|---|---|
arg1 | はい | 整数、文字列、配列、オブジェクト | null かどうかがテストされる最初の値。 |
その他の引数 | いいえ | 整数、文字列、配列、オブジェクト | null かどうかを確かめるその他の値。 |
戻り値
最初の null 以外のパラメーターの値。文字列、整数、配列、またはオブジェクトが返されます。 すべてのパラメーターが null の場合は null になります。
例
次のテンプレート例では、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))]"
}
}
}
既定値を使用した場合の前の例の出力は次のようになります。
名前 | Type | 値 |
---|---|---|
stringOutput | String | default |
intOutput | int | 1 |
objectOutput | Object | {"first": "default"} |
arrayOutput | Array | [1] |
emptyOutput | Bool | True |
equals
equals(arg1, arg2)
2 つの値が同一かどうかを確認します。 比較では、大文字と小文字を区別します。
Bicep では、代わりに ==
演算子を使用してください。 「Equals == 」を参照してください。
パラメーター
パラメーター | 必須 | タイプ | 説明 |
---|---|---|---|
arg1 | はい | 整数、文字列、配列、オブジェクト | 等しいかどうかを確認する 1 番目の値。 |
arg2 | はい | 整数、文字列、配列、オブジェクト | 等しいかどうかを確認する 2 番目の値。 |
戻り値
値が等しい場合は True を、それ以外の場合は False を返します。
注釈
equals 関数は、リソースがデプロイされているかどうかをテストするために、多くの場合 condition
要素と共に使用されます。
{
"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": {}
}
例
次の例では、さまざまな型の値が等しいかどうかを確認します。 すべての既定値は 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'))]"
}
}
}
既定値を使用した場合の前の例の出力は次のようになります。
名前 | Type | Value | Note |
---|---|---|---|
checkInts | Bool | True | |
checkStrings | Bool | False | 比較では大文字と小文字が区別されるため、結果は false 。 |
checkArrays | Bool | True | |
checkObjects | Bool | True |
次のテンプレート例では、not と equals を使用します。
{
"$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))]"
}
}
}
前の例からの出力は次のようになります。
名前 | Type | [値] |
---|---|---|
checkNotEquals | Bool | True |
greater
greater(arg1, arg2)
1 番目の値が 2 番目の値より大きいかどうかを確認します。
Bicep では、代わりに >
演算子を使用してください。 「次の値より大きい >」を参照してください。
パラメーター
パラメーター | 必須 | タイプ | 説明 |
---|---|---|---|
arg1 | はい | 整数または文字列 | 大きいかどうかを比較する 1 番目の値。 |
arg2 | はい | 整数または文字列 | 大きいかどうかを比較する 2 番目の値。 |
戻り値
1 番目の値が 2 番目の値よりも大きい場合は True を、それ以外の場合は False を返します。
例
次の例では、ある値がもう一方の値よりも大きいかどうかを確認します。
{
"$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'))]"
}
}
}
既定値を使用した場合の前の例の出力は次のようになります。
名前 | Type | 値 |
---|---|---|
checkInts | Bool | False |
checkStrings | Bool | True |
greaterOrEquals
greaterOrEquals(arg1, arg2)
1 番目の値が 2 番目の値以上かどうかを確認します。
Bicep では、代わりに >=
演算子を使用してください。 「次の値以上 >=」を参照してください。
パラメーター
パラメーター | 必須 | タイプ | 説明 |
---|---|---|---|
arg1 | はい | 整数または文字列 | 以上かどうかを比較する 1 番目の値。 |
arg2 | はい | 整数または文字列 | 以上かどうかを比較する 2 番目の値。 |
戻り値
1 番目の値が 2 番目の値以上の場合は True を、それ以外の場合は False を返します。
例
次の例では、ある値がもう一方の値以上であるかどうかを確認します。
{
"$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'))]"
}
}
}
既定値を使用した場合の前の例の出力は次のようになります。
名前 | Type | 値 |
---|---|---|
checkInts | Bool | False |
checkStrings | Bool | True |
less
less(arg1, arg2)
1 番目の値が 2 番目の値より小さいかどうかを確認します。
Bicep では、代わりに <
演算子を使用してください。 「次の値より小さい <」を参照してください。
パラメーター
パラメーター | 必須 | タイプ | 説明 |
---|---|---|---|
arg1 | はい | 整数または文字列 | 小さいかどうかを比較する 1 番目の値。 |
arg2 | はい | 整数または文字列 | 小さいかどうかを比較する 2 番目の値。 |
戻り値
1 番目の値が 2 番目の値よりも小さい場合は True を、それ以外の場合は False を返します。
例
次の例では、ある値がもう一方の値よりも小さいかどうかを確認します。
{
"$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'))]"
}
}
}
既定値を使用した場合の前の例の出力は次のようになります。
名前 | Type | 値 |
---|---|---|
checkInts | Bool | True |
checkStrings | Bool | False |
lessOrEquals
lessOrEquals(arg1, arg2)
1 番目の値が 2 番目の値以下かどうかを確認します。
Bicep では、代わりに <=
演算子を使用してください。 「次の値以下 <=」を参照してください。
パラメーター
パラメーター | 必須 | タイプ | 説明 |
---|---|---|---|
arg1 | はい | 整数または文字列 | 以下かどうかを比較する 1 番目の値。 |
arg2 | はい | 整数または文字列 | 以下かどうかを比較する 2 番目の値。 |
戻り値
1 番目の値が 2 番目の値以下の場合は True を、それ以外の場合は False を返します。
例
次の例では、ある値がもう一方の値以下であるかどうかを確認します。
{
"$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'))]"
}
}
}
既定値を使用した場合の前の例の出力は次のようになります。
名前 | Type | 値 |
---|---|---|
checkInts | Bool | True |
checkStrings | Bool | False |
次のステップ
- ARM テンプレートのセクションの説明については、「ARM テンプレートの構造と構文について」を参照してください。