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
- Untuk deskripsi bagian-bagian dalam templat ARM, lihat Memahami struktur dan sintaksis templat ARM.