次の方法で共有


ARM テンプレートの比較関数

Resource Manager には、Azure Resource Manager テンプレート (ARM テンプレート) で比較を行うための関数がいくつか用意されています。

ヒント

Bicep は ARM テンプレートと同じ機能を提供し、構文の方が使いやすいため、推奨されます。 詳細については、合体論理演算子と比較演算子に関するページを参照してください。

結合する

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))]"
    }
  }
}

前の例の既定値の出力は次のとおりです。

名前 タイプ
stringOutput String デフォルト
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": "2025-06-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"

前の例の既定値の出力は次のとおりです。

名前 タイプ Note
checkInts Bool True
checkStrings Bool いいえ 比較では大文字と小文字が区別されるため、結果は false
checkArrays Bool True
checkObjects Bool True

次のテンプレート例では、等しいnotを使用します

{
  "$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))]"
    }
  }
}

前の例からの出力は次のようになります。

名前 タイプ
checkNotEquals Bool True

greater

greater(arg1, arg2)

最初の値が 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'))]"
    }
  }
}

前の例の既定値の出力は次のとおりです。

名前 タイプ
checkInts Bool いいえ
checkStrings Bool True

greaterOrEquals

greaterOrEquals(arg1, arg2)

最初の値が 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'))]"
    }
  }
}

前の例の既定値の出力は次のとおりです。

名前 タイプ
checkInts Bool いいえ
checkStrings Bool True

less

less(arg1, arg2)

最初の値が 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'))]"
    }
  }
}

前の例の既定値の出力は次のとおりです。

名前 タイプ
checkInts Bool True
checkStrings Bool いいえ

lessOrEquals

lessOrEquals(arg1, arg2)

最初の値が 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'))]"
    }
  }
}

前の例の既定値の出力は次のとおりです。

名前 タイプ
checkInts Bool True
checkStrings Bool いいえ

次のステップ

ARM テンプレートのセクションの説明については、「ARM テンプレートの構造と構文について」を参照してください。