ARM şablonları için mantıksal işlevler
Resource Manager, Azure Resource Manager şablonunuzda (ARM şablonu) karşılaştırma yapmak için çeşitli işlevler sağlar:
İpucu
ARM şablonlarıyla aynı özellikleri sunduğundan ve söz diziminin kullanımı daha kolay olduğundan Bicep'i öneririz. Daha fazla bilgi edinmek için bkz . bool mantıksal işlevi ve mantıksal işleçler.
ile
and(arg1, arg2, ...)
Tüm parametre değerlerinin true olup olmadığını denetler.
İşlev and
Bicep'te desteklenmez. Bunun yerine & işlecini kullanın.
Parametreler
Parametre | Zorunlu | Türü | Açıklama |
---|---|---|---|
arg1 | Yes | boolean | Doğru olup olmadığını denetlemek için ilk değer. |
arg2 | Yes | boolean | Doğru olup olmadığını denetlemek için ikinci değer. |
diğer bağımsız değişkenler | Hayır | boolean | Doğru olup olmadığını denetlemek için daha fazla bağımsız değişken. |
Dönüş değeri
Tüm değerler true ise True, değilse False döndürür.
Örnekler
Aşağıdaki örnekte mantıksal işlevlerin nasıl kullanılacağı gösterilmektedir.
{
"$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'))]"
}
}
}
Yukarıdaki örnekten alınan çıkış:
Adı | Tür | Değer |
---|---|---|
andExampleOutput | Boole | False |
orExampleOutput | Boole | True |
notExampleOutput | Boole | False |
ikili
bool(arg1)
parametresini boole değerine dönüştürür.
Bicep'te bool mantıksal işlevini kullanın.
Parametreler
Parametre | Zorunlu | Türü | Açıklama |
---|---|---|---|
arg1 | Yes | dize veya int | Boole değerine dönüştürülecek değer. |
Dönüş değeri
Dönüştürülen değerin boole değeri.
Açıklamalar
Boole değerlerini almak için true() ve false() değerlerini de kullanabilirsiniz.
Örnekler
Aşağıdaki örnekte bir dize veya tamsayı ile bool'un nasıl kullanılacağı gösterilmektedir.
{
"$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)]"
}
}
}
Yukarıdaki örnekten varsayılan değerleri içeren çıkış:
Adı | Tür | Değer |
---|---|---|
trueString | Boole | True |
falseString | Boole | False |
trueInt | Boole | True |
falseInt | Boole | False |
yanlış
false()
Yanlış değerini döndürür.
false
İşlev Bicep'te kullanılamaz. Bunun yerine anahtar sözcüğünü false
kullanın.
Parametreler
false işlevi herhangi bir parametre kabul etmez.
Dönüş değeri
Her zaman yanlış olan bir boole değeri.
Örnek
Aşağıdaki örnek bir yanlış çıkış değeri döndürür.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"falseOutput": {
"type": "bool",
"value": "[false()]"
}
}
}
Yukarıdaki örnekten alınan çıkış:
Adı | Tür | Değer |
---|---|---|
falseOutput | Boole | False |
eğer
if(condition, trueValue, falseValue)
Koşulun true veya false olmasına bağlı olarak bir değer döndürür.
İşlev if
Bicep'te desteklenmez. Bunun yerine ?: işlecini kullanın.
Parametreler
Parametre | Zorunlu | Türü | Açıklama |
---|---|---|---|
koşul | Yes | boolean | Doğru mu yoksa yanlış mı olduğunu denetlemek için gereken değer. |
Truevalue | Yes | string, int, object veya array | Koşul true olduğunda döndürülecek değer. |
Falsevalue | Yes | string, int, object veya array | Koşul false olduğunda döndürülecek değer. |
Dönüş değeri
İlk parametre True olduğunda ikinci parametreyi döndürür; aksi takdirde üçüncü parametreyi döndürür.
Açıklamalar
Koşul True olduğunda, yalnızca true değeri değerlendirilir. Koşul False olduğunda, yalnızca false değeri değerlendirilir. işleviyle if
, yalnızca koşullu olarak geçerli ifadeler ekleyebilirsiniz. Örneğin, bir koşul altında var olan ama diğer koşul altında olmayan bir kaynağa başvurabilirsiniz. İfadeleri koşullu olarak değerlendirme örneği aşağıdaki bölümde gösterilmiştir.
Örnekler
Aşağıdaki örnekte işlevin nasıl kullanılacağı gösterilmektedir 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'))]"
}
}
}
Yukarıdaki örnekten alınan çıkış:
Adı | Tür | Değer |
---|---|---|
yesOutput | String | evet |
noOutput | String | hayır |
objectOutput | Object | { "test": "value1" } |
Aşağıdaki örnek şablonda bu işlevin yalnızca koşullu olarak geçerli ifadelerle nasıl kullanılacağı gösterilmektedir.
{
"$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)
Boole değerini karşı değerine dönüştürür.
İşlev not
Bicep'te desteklenmez. Bunun yerine ! işlecini kullanın.
Parametreler
Parametre | Zorunlu | Türü | Açıklama |
---|---|---|---|
arg1 | Yes | boolean | Dönüştürülecek değer. |
Dönüş değeri
Parametre False olduğunda True döndürür. Parametre True olduğunda False döndürür.
Örnekler
Aşağıdaki örnekte mantıksal işlevlerin nasıl kullanılacağı gösterilmektedir.
{
"$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'))]"
}
}
}
Yukarıdaki örnekten alınan çıkış:
Adı | Tür | Değer |
---|---|---|
andExampleOutput | Boole | False |
orExampleOutput | Boole | True |
notExampleOutput | Boole | False |
Aşağıdaki örnek eşittir ile kullanırnot
.
{
"$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))]"
}
}
}
Yukarıdaki örnekten alınan çıkış:
Adı | Tür | Değer |
---|---|---|
checkNotEquals | Boole | True |
veya
or(arg1, arg2, ...)
Herhangi bir parametre değerinin true olup olmadığını denetler.
İşlev or
Bicep'te desteklenmez. Bunun yerine || işlecini kullanın.
Parametreler
Parametre | Zorunlu | Türü | Açıklama |
---|---|---|---|
arg1 | Yes | boolean | Doğru olup olmadığını denetlemek için ilk değer. |
arg2 | Yes | boolean | Doğru olup olmadığını denetlemek için ikinci değer. |
diğer bağımsız değişkenler | Hayır | boolean | Doğru olup olmadığını denetlemek için daha fazla bağımsız değişken. |
Dönüş değeri
Herhangi bir değer true ise True, değilse False döndürür.
Örnekler
Aşağıdaki örnekte mantıksal işlevlerin nasıl kullanılacağı gösterilmektedir.
{
"$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'))]"
}
}
}
Yukarıdaki örnekten alınan çıkış:
Adı | Tür | Değer |
---|---|---|
andExampleOutput | Boole | False |
orExampleOutput | Boole | True |
notExampleOutput | Boole | Yanlış |
true
true()
Doğru değerini döndürür.
true
İşlev Bicep'te kullanılamaz. Bunun yerine anahtar sözcüğünü true
kullanın.
Parametreler
true işlevi herhangi bir parametre kabul etmez.
Dönüş değeri
Her zaman doğru olan bir boole.
Örnek
Aşağıdaki örnek doğru bir çıkış değeri döndürür.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"trueOutput": {
"type": "bool",
"value": "[true()]"
}
}
}
Yukarıdaki örnekten alınan çıkış:
Adı | Tür | Değer |
---|---|---|
trueOutput | Boole | True |
Sonraki adımlar
- ARM şablonundaki bölümlerin açıklaması için bkz . ARM şablonlarının yapısını ve söz dizimini anlama.