ARM テンプレート用の論理関数
Resource Manager には、Azure Resource Manager テンプレート (ARM テンプレート) で比較を行うための関数がいくつか用意されています。
および
and(arg1, arg2, ...)
すべてのパラメーター値が true かどうかを確認します。
and
関数は、Bicep ではサポートされていません。 代わりに、&& 演算子を使用してください。
パラメーター
パラメーター | 必須 | タイプ | 説明 |
---|---|---|---|
arg1 | はい | boolean | true かどうかを確認する最初の値。 |
arg2 | はい | boolean | true かどうかを確認する 2 番目の値。 |
その他の引数 | いいえ | boolean | true かどうかを確認するその他の引数。 |
戻り値
すべての値が true の場合は True を、それ以外の場合は False を返します。
例
次の例では、論理関数を使用する方法を示します。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"andExampleOutput": {
"type": "bool",
"value": "[and(bool('true'), bool('false'))]"
},
"orExampleOutput": {
"type": "bool",
"value": "[or(bool('true'), bool('false'))]"
},
"notExampleOutput": {
"type": "bool",
"value": "[not(bool('true'))]"
}
}
}
前の例からの出力は次のようになります。
名前 | Type | [値] |
---|---|---|
andExampleOutput | Bool | False |
orExampleOutput | Bool | True |
notExampleOutput | Bool | False |
[bool]
bool(arg1)
パラメーターをブール値に変換します。
Bicep では、bool 論理関数を使用します。
パラメーター
パラメーター | 必須 | タイプ | 説明 |
---|---|---|---|
arg1 | はい | 文字列または整数 | ブール値に変換する値。 |
戻り値
変換後の値のブール値。
解説
true () と false () を使用してブール値を取得することもできます。
例
次の例では、ブール値を文字列または整数と共に使用する方法を示します。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"trueString": {
"type": "bool",
"value": "[bool('true')]"
},
"falseString": {
"type": "bool",
"value": "[bool('false')]"
},
"trueInt": {
"type": "bool",
"value": "[bool(1)]"
},
"falseInt": {
"type": "bool",
"value": "[bool(0)]"
}
}
}
既定値を使用した場合の前の例の出力は次のようになります。
名前 | Type | [値] |
---|---|---|
trueString | Bool | True |
falseString | Bool | False |
trueInt | Bool | True |
falseInt | Bool | False |
false
false()
false を返します。
false
関数は、Bicep では使用できません。 代わりに、false
キーワードを使用します。
パラメーター
false 関数では、パラメーターは受け入れられません。
戻り値
常に false のブール値です。
例
次の例では、false の出力値が返されます。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"falseOutput": {
"type": "bool",
"value": "[false()]"
}
}
}
前の例からの出力は次のようになります。
名前 | Type | [値] |
---|---|---|
falseOutput | Bool | False |
if
if(condition, trueValue, falseValue)
条件が true か false かに基づいて値を返します。
if
関数は、Bicep ではサポートされていません。 代わりに、?: 演算子を使用してください。
パラメーター
パラメーター | 必須 | タイプ | 説明 |
---|---|---|---|
condition | はい | boolean | true か false かどうかを確認する値。 |
trueValue | はい | string、int、object、または array | 条件が true の場合に返される値。 |
falseValue | はい | string、int、object、または array | 条件が false の場合に返される値。 |
戻り値
最初のパラメーターが True の場合、2 番目のパラメーターを返します。そうでない場合、3 番目のパラメーターを返します。
解説
条件が True の場合、true の値のみが評価されます。 条件が False の場合、false の値のみが評価されます。 if
関数の場合、条件付きで有効な式のみを含めることができます。 たとえば、1 つの条件の下で存在し、他の条件下では存在しないリソースを参照できます。 条件付きでの式の評価の例については、次のセクションを参照してください。
例
次の例は、if
関数の使用法を示しています。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
],
"outputs": {
"yesOutput": {
"type": "string",
"value": "[if(equals('a', 'a'), 'yes', 'no')]"
},
"noOutput": {
"type": "string",
"value": "[if(equals('a', 'b'), 'yes', 'no')]"
},
"objectOutput": {
"type": "object",
"value": "[if(equals('a', 'a'), json('{\"test\": \"value1\"}'), json('null'))]"
}
}
}
前の例からの出力は次のようになります。
名前 | Type | [値] |
---|---|---|
yesOutput | String | はい |
noOutput | String | no |
objectOutput | Object | { "test": "value1" } |
次のテンプレート例では、条件付きで有効な式限定で、この関数を使用する方法を示しています。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"type": "string"
},
"location": {
"type": "string"
},
"logAnalytics": {
"type": "string",
"defaultValue": ""
}
},
"resources": [
{
"condition": "[not(empty(parameters('logAnalytics')))]",
"type": "Microsoft.Compute/virtualMachines/extensions",
"apiVersion": "2022-11-01",
"name": "[format('{0}/omsOnboarding', parameters('vmName'))]",
"location": "[parameters('location')]",
"properties": {
"publisher": "Microsoft.EnterpriseCloud.Monitoring",
"type": "MicrosoftMonitoringAgent",
"typeHandlerVersion": "1.0",
"autoUpgradeMinorVersion": true,
"settings": {
"workspaceId": "[if(not(empty(parameters('logAnalytics'))), reference(parameters('logAnalytics'), '2015-11-01-preview').customerId, null())]"
},
"protectedSettings": {
"workspaceKey": "[if(not(empty(parameters('logAnalytics'))), listKeys(parameters('logAnalytics'), '2015-11-01-preview').primarySharedKey, null())]"
}
}
}
],
"outputs": {
"mgmtStatus": {
"type": "string",
"value": "[if(not(empty(parameters('logAnalytics'))), 'Enabled monitoring for VM!', 'Nothing to enable')]"
}
}
}
not
not(arg1)
ブール値をその反対の値に変換します。
not
関数は、Bicep ではサポートされていません。 代わりに、! 演算子を使用してください。
パラメーター
パラメーター | 必須 | タイプ | 説明 |
---|---|---|---|
arg1 | はい | boolean | 変換する値。 |
戻り値
パラメーターが False の場合、True を返します。 パラメーターが True の場合、False を返します。
例
次の例では、論理関数を使用する方法を示します。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"andExampleOutput": {
"type": "bool",
"value": "[and(bool('true'), bool('false'))]"
},
"orExampleOutput": {
"type": "bool",
"value": "[or(bool('true'), bool('false'))]"
},
"notExampleOutput": {
"type": "bool",
"value": "[not(bool('true'))]"
}
}
}
前の例からの出力は次のようになります。
名前 | Type | [値] |
---|---|---|
andExampleOutput | Bool | False |
orExampleOutput | Bool | True |
notExampleOutput | Bool | False |
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 |
または
or(arg1, arg2, ...)
いずれかのパラメーター値が true かどうかを確認します。
or
関数は、Bicep ではサポートされていません。 代わりに、|| 演算子を使用してください。
パラメーター
パラメーター | 必須 | タイプ | 説明 |
---|---|---|---|
arg1 | はい | boolean | true かどうかを確認する最初の値。 |
arg2 | はい | boolean | true かどうかを確認する 2 番目の値。 |
その他の引数 | いいえ | boolean | true かどうかを確認するその他の引数。 |
戻り値
いずれかの値が true の場合は True を返し、そうでない場合は False を返します。
例
次の例では、論理関数を使用する方法を示します。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"andExampleOutput": {
"type": "bool",
"value": "[and(bool('true'), bool('false'))]"
},
"orExampleOutput": {
"type": "bool",
"value": "[or(bool('true'), bool('false'))]"
},
"notExampleOutput": {
"type": "bool",
"value": "[not(bool('true'))]"
}
}
}
前の例からの出力は次のようになります。
名前 | Type | [値] |
---|---|---|
andExampleOutput | Bool | False |
orExampleOutput | Bool | True |
notExampleOutput | Bool | False |
true
true()
true を返します。
true
関数は、Bicep では使用できません。 代わりに、true
キーワードを使用します。
パラメーター
true 関数では、パラメーターは受け入れられません。
戻り値
常に true のブール値です。
例
次の例では、true の出力値が返されます。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"trueOutput": {
"type": "bool",
"value": "[true()]"
}
}
}
前の例からの出力は次のようになります。
名前 | Type | [値] |
---|---|---|
trueOutput | Bool | True |
次のステップ
- ARM テンプレートのセクションの説明については、「ARM テンプレートの構造と構文について」を参照してください。