Fungsi perbandingan untuk templat ARM

Resource Manager menyediakan beberapa fungsi untuk membuat perbandingan dalam templat Azure Resource Manager (templat ARM):

Tip

Kami merekomendasikan Bicep karena menawarkan kemampuan yang sama dengan templat ARM dan sintaksnya lebih mudah digunakan. Untuk mempelajari lebih lanjut, lihat operator logis dan operator perbandingan yang menyatu.

gabungkan

coalesce(arg1, arg2, arg3, ...)

Mengembalikan nilai bukan nol pertama dari parameter. String kosong, array kosong, dan objek kosong tidak kosong.

Di Bicep, gunakan operator ??. Lihat Gabungkan ??.

Parameter

Parameter Diperlukan Jenis Deskripsi
arg1 Ya int, string, array, atau objek Nilai pertama yang diuji untuk null.
lebih banyak argumen Tidak int, string, array, atau objek Lebih banyak nilai yang diuji untuk null.

Mengembalikan nilai

Nilai parameter non-null pertama, yang dapat menjadi string, int, array, atau objek. Null jika semua parameter null.

Contoh

Contoh template berikut menunjukkan output dari berbagai penggunaan 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))]"
    }
  }
}

Output dari contoh sebelumnya dengan nilai default adalah:

Nama Jenis Nilai
stringOutput String default
intOutput Int 1
objectOutput Objek {"first": "default"}
arrayOutput Array [1]
emptyOutput Bool True

setara

equals(arg1, arg2)

Memeriksa apakah dua nilai sama satu sama lain.

Di Bicep, gunakan operator ==. Lihat Sama dengan ==.

Parameter

Parameter Diperlukan Jenis Deskripsi
arg1 Ya int, string, array, atau objek Nilai pertama yang memeriksa kesetaraan.
arg2 Ya int, string, array, atau objek Nilai pertama yang memeriksa kesetaraan.

Mengembalikan nilai

Mengembalikan True jika nilainya sama; jika tidak, Salah.

Keterangan

Fungsi sederajat sering digunakan condition dengan elemen untuk menguji apakah sumber daya digunakan.

{
  "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": {}
}

Contoh

Contoh berikut ini memeriksa jenis nilai yang berbeda untuk persamaan. Semua nilai default mengembalikan 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": "a"
    },
    "secondString": {
      "type": "string",
      "defaultValue": "a"
    },
    "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'))]"
    }
  }
}

Output dari contoh sebelumnya dengan nilai default adalah:

Nama Jenis Nilai
checkInts Bool True
checkStrings Bool True
checkArrays Bool True
checkObjects Bool True

Contoh templat berikut ini tidak digunakan dengan sama dengan.

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

Output dari contoh sebelumnya adalah:

Nama Jenis Nilai
checkNotEquals Bool True

lebih besar

greater(arg1, arg2)

Memeriksa apakah nilai pertama lebih besar dari nilai kedua.

Di Bicep, gunakan operator >. Lihat Lebih besar dari .

Parameter

Parameter Diperlukan Jenis Deskripsi
arg1 Ya int atau string Nilai pertama untuk perbandingan yang lebih besar.
arg2 Ya int atau string Nilai pertama untuk perbandingan yang lebih besar.

Mengembalikan nilai

Mengembalikan True jika nilai pertama lebih besar dari nilai kedua; jika tidak, Salah.

Contoh

Contoh berikut ini memeriksa apakah salah satu nilai lebih besar dari yang lain.

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

Output dari contoh sebelumnya dengan nilai default adalah:

Nama Jenis Nilai
checkInts Bool False
checkStrings Bool True

lebihAtauSetara

greaterOrEquals(arg1, arg2)

Memeriksa apakah nilai pertama lebih besar dari nilai kedua.

Di Bicep, gunakan operator >=. Lihat Lebih besar dari atau sama dengan =.

Parameter

Parameter Diperlukan Jenis Deskripsi
arg1 Ya int atau string Nilai pertama untuk perbandingan yang lebih besar.
arg2 Ya int atau string Nilai pertama untuk perbandingan yang lebih besar.

Mengembalikan nilai

Mengembalikan True jika nilai pertama lebih besar dari nilai kedua; jika tidak, Salah.

Contoh

Contoh berikut ini memeriksa apakah salah satu nilai lebih besar dari atau sama dengan yang lain.

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

Output dari contoh sebelumnya dengan nilai default adalah:

Nama Jenis Nilai
checkInts Bool False
checkStrings Bool True

lebih sedikit

less(arg1, arg2)

Memeriksa apakah nilai pertama lebih besar dari nilai kedua.

Di Bicep, gunakan operator <. Lihat Lebih kecil dari .

Parameter

Parameter Diperlukan Jenis Deskripsi
arg1 Ya int atau string Nilai pertama untuk perbandingan yang lebih sedikit.
arg2 Ya int atau string Nilai pertama untuk perbandingan yang lebih sedikit.

Mengembalikan nilai

Mengembalikan True jika nilai pertama lebih besar dari nilai kedua; jika tidak, Salah.

Contoh

Contoh berikut ini memeriksa apakah satu nilai lebih sedikit dari yang lain.

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

Output dari contoh sebelumnya dengan nilai default adalah:

Nama Jenis Nilai
checkInts Bool True
checkStrings Bool False

kurangAtauSetara

lessOrEquals(arg1, arg2)

Memeriksa apakah nilai pertama lebih besar dari nilai kedua.

Di Bicep, gunakan operator <=. Lihat Lebih kecil dari atau sama dengan =.

Parameter

Parameter Diperlukan Jenis Deskripsi
arg1 Ya int atau string Nilai pertama untuk perbandingan yang lebih sedikit.
arg2 Ya int atau string Nilai pertama untuk perbandingan yang lebih sedikit.

Mengembalikan nilai

Mengembalikan True jika nilai pertama lebih besar dari nilai kedua; jika tidak, Salah.

Contoh

Contoh berikut ini memeriksa apakah satu nilai lebih sedikit dari atau sama dengan yang lain.

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

Output dari contoh sebelumnya dengan nilai default adalah:

Nama Jenis Nilai
checkInts Bool True
checkStrings Bool False

Langkah berikutnya