Fungsi logis 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 fungsi logis bool dan operator logis.

dan

and(arg1, arg2, ...)

Memeriksa apakah semua nilai parameter benar.

Fungsi and tidak didukung di Bicep. Gunakan operator && sebagai gantinya.

Parameter

Parameter Wajib Tipe Deskripsi
arg1 Ya Boolean Nilai pertama untuk memeriksa apakah benar.
arg2 Ya Boolean Nilai kedua untuk memeriksa apakah benar.
lebih banyak argumen No Boolean Lebih banyak argumen untuk memeriksa apakah benar.

Nilai hasil

Kembalikan Benar jika semua nilai benar; jika tidak, Salah.

Contoh

Contoh berikut menunjukkan cara menggunakan fungsi logis.

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

Output dari contoh sebelumnya adalah:

Nama Jenis Nilai
andExampleOutput Bool Salah
orExampleOutput Bool Benar
orExampleOutput Bool Salah

bool

bool(arg1)

Mengonversi parameter menjadi boolean.

Di Bicep, gunakan fungsi logis bool.

Parameter

Parameter Wajib Tipe Deskripsi
arg1 Ya string atau int Nilai untuk dikonversi menjadi boolean.

Nilai hasil

Boolean dari nilai yang dikonversi.

Keterangan

Anda juga dapat menggunakan true() dan false() untuk mendapatkan nilai boolean.

Contoh

Contoh berikut menunjukkan cara menggunakan bool dengan string atau bilangan bulat.

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

Output dari contoh sebelumnya dengan nilai default adalah:

Nama Jenis Nilai
trueString Bool Benar
falseString Bool Salah
trueInt Bool Benar
falseInt Bool Salah

salah

false()

Mengembalikan salah.

Fungsi false tidak tersedia di Bicep. Gunakan kata kunci false sebagai gantinya.

Parameter

Fungsi salah tidak menerima parameter apa pun.

Nilai hasil

Boolean yang selalu salah.

Contoh

Contoh berikut mengembalikan nilai output salah.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "falseOutput": {
      "type": "bool",
      "value": "[false()]"
    }
  }
}

Output dari contoh sebelumnya adalah:

Nama Jenis Nilai
falseOutput Bool Salah

if

if(condition, trueValue, falseValue)

Mengembalikan nilai berdasarkan apakah kondisi itu benar atau salah.

Fungsi if tidak didukung di Bicep. Gunakan operator ?: sebagai gantinya.

Parameter

Parameter Wajib Tipe Deskripsi
kondisi Ya Boolean Nilai untuk memeriksa apakah itu benar atau salah.
trueValue Ya string, int, objek, atau array Nilai yang akan dikembalikan saat kondisi tersebut benar.
falseValue Ya string, int, objek, atau array Nilai yang akan dikembalikan saat kondisi salah.

Nilai hasil

Mengembalikan parameter kedua saat parameter pertama adalah Benar; jika tidak, mengembalikan parameter ketiga.

Keterangan

Ketika kondisinya Benar, hanya nilai benar yang dievaluasi. Ketika kondisinya Salah, hanya nilai salah yang dievaluasi. Dengan fungsi if, Anda dapat menyertakan ekspresi yang hanya valid secara kondisional. Misalnya, Anda dapat mereferensikan sumber daya yang ada dalam satu kondisi tetapi tidak dalam kondisi lain. Contoh ekspresi evaluasi secara kondisional diperlihatkan di bagian berikut.

Contoh

Contoh berikut menunjukkan cara menggunakan fungsi 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'))]"
    }
  }
}

Output dari contoh sebelumnya adalah:

Nama Jenis Nilai
yesOutput String yes
noOutput String no
objectOutput Objek { "test": "value1" }

Contoh templat berikut menunjukkan cara menggunakan fungsi ini dengan ekspresi yang hanya valid secara kondisional.

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

Mengonversi nilai boolean ke nilai yang berlawanan.

Fungsi not tidak didukung di Bicep. Sebagai gantinya, gunakan ! operator.

Parameter

Parameter Wajib Tipe Deskripsi
arg1 Ya Boolean Nilai yang akan dikonversi.

Nilai hasil

Mengembalikan Benar bila parameter Salah. Mengembalikan Salah bila parameter Benar.

Contoh

Contoh berikut menunjukkan cara menggunakan fungsi logis.

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

Output dari contoh sebelumnya adalah:

Nama Jenis Nilai
andExampleOutput Bool Salah
orExampleOutput Bool Benar
orExampleOutput Bool Salah

Contoh berikut menggunakan not 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 Benar

or

or(arg1, arg2, ...)

Memeriksa apakah ada nilai parameter yang benar.

Fungsi or tidak didukung di Bicep. Sebagai gantinya, gunakan || operator.

Parameter

Parameter Wajib Tipe Deskripsi
arg1 Ya Boolean Nilai pertama untuk memeriksa apakah benar.
arg2 Ya Boolean Nilai kedua untuk memeriksa apakah benar.
lebih banyak argumen No Boolean Lebih banyak argumen untuk memeriksa apakah benar.

Nilai hasil

Mengembalikan Benar jika nilai apa pun benar; jika tidak, Salah.

Contoh

Contoh berikut menunjukkan cara menggunakan fungsi logis.

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

Output dari contoh sebelumnya adalah:

Nama Jenis Nilai
andExampleOutput Bool Salah
orExampleOutput Bool Benar
orExampleOutput Bool Salah

benar

true()

Mengembalikan benar.

Fungsi true tidak tersedia di Bicep. Gunakan kata kunci true sebagai gantinya.

Parameter

Fungsi benar tidak menerima parameter apa pun.

Nilai hasil

Boolean yang selalu benar.

Contoh

Contoh berikut mengembalikan nilai output 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()]"
    }
  }
}

Output dari contoh sebelumnya adalah:

Nama Jenis Nilai
trueOutput Bool Benar

Langkah berikutnya