ARM şablonları için karşılaştırma işlevleri
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 birleşim mantıksal işlecine ve karşılaştırma işleçlerine bakın.
birleşmek
coalesce(arg1, arg2, arg3, ...)
Parametrelerden ilk null olmayan değeri döndürür. Boş dizeler, boş diziler ve boş nesneler null değildir.
Bicep'te bunun yerine işlecini ??
kullanın. Bkz . Coalesce ??.
Parametreler
Parametre | Zorunlu | Türü | Açıklama |
---|---|---|---|
arg1 | Yes | int, dize, dizi veya nesne | Null için sınanacak ilk değer. |
diğer bağımsız değişkenler | Hayır | int, dize, dizi veya nesne | Null için test etmek için daha fazla değer. |
Dönüş değeri
Dize, int, dizi veya nesne olabilecek ilk null olmayan parametrelerin değeri. Tüm parametreler null ise null.
Örnek
Aşağıdaki örnek şablon, birleştirmenin farklı kullanımlarından elde edilen çıkışı gösterir.
{
"$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))]"
}
}
}
Yukarıdaki örnekten varsayılan değerleri içeren çıkış:
Adı | Tür | Değer |
---|---|---|
stringOutput | String | varsayılan |
intOutput | Int | 1 |
objectOutput | Object | {"first": "default"} |
arrayOutput | Dizi | [1] |
emptyOutput | Boole | True |
equals
equals(arg1, arg2)
İki değerin aynı olup olmadığını denetler. Karşılaştırma büyük/küçük harfe duyarlıdır.
Bicep'te bunun yerine işlecini ==
kullanın. Bkz. Eşittir ==.
Parametreler
Parametre | Zorunlu | Türü | Açıklama |
---|---|---|---|
arg1 | Yes | int, dize, dizi veya nesne | Eşitliği denetlemek için ilk değer. |
arg2 | Yes | int, dize, dizi veya nesne | Eşitliği denetlemek için ikinci değer. |
Dönüş değeri
Değerler eşitse True, değilse False döndürür.
Açıklamalar
equals işlevi genellikle bir kaynağın condition
dağıtılıp dağıtılmadığını test etmek için öğesiyle birlikte kullanılır.
{
"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": {}
}
Örnek
Aşağıdaki örnek, eşitlik için farklı değer türlerini denetler. Tüm varsayılan değerler True değerini döndürür.
{
"$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"
},
"secondString": {
"type": "string",
"defaultValue": "Demo"
},
"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'))]"
}
}
}
Yukarıdaki örnekten varsayılan değerleri içeren çıkış:
Adı | Tür | Değer | Not |
---|---|---|---|
checkInts | Boole | True | |
checkStrings | Boole | False | Sonuç, false karşılaştırmanın büyük/küçük harfe duyarlı olmasıdır. |
checkArrays | Boole | True | |
checkObjects | Boole | True |
Aşağıdaki örnek şablon eşittir ile kullanmaz.
{
"$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 |
greater
greater(arg1, arg2)
İlk değerin ikinci değerden büyük olup olmadığını denetler.
Bicep'te bunun yerine işlecini >
kullanın. Bkz. Büyüktür >.
Parametreler
Parametre | Zorunlu | Türü | Açıklama |
---|---|---|---|
arg1 | Yes | int veya dize | Daha büyük karşılaştırma için ilk değer. |
arg2 | Yes | int veya dize | Daha büyük karşılaştırma için ikinci değer. |
Dönüş değeri
İlk değer ikinci değerden büyükse True, değilse False döndürür.
Örnek
Aşağıdaki örnek, bir değerin diğerinden büyük olup olmadığını denetler.
{
"$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'))]"
}
}
}
Yukarıdaki örnekten varsayılan değerleri içeren çıkış:
Adı | Tür | Değer |
---|---|---|
checkInts | Boole | False |
checkStrings | Boole | True |
greaterOrEquals
greaterOrEquals(arg1, arg2)
İlk değerin ikinci değerden büyük veya buna eşit olup olmadığını denetler.
Bicep'te bunun yerine işlecini >=
kullanın. Bkz. Büyüktür veya eşittir >=.
Parametreler
Parametre | Zorunlu | Türü | Açıklama |
---|---|---|---|
arg1 | Yes | int veya dize | Büyük veya eşit karşılaştırma için ilk değer. |
arg2 | Yes | int veya dize | Büyük veya eşit karşılaştırma için ikinci değer. |
Dönüş değeri
İlk değer ikinci değerden büyük veya buna eşitse True döndürür; aksi takdirde False döndürür.
Örnek
Aşağıdaki örnek, bir değerin diğerinden büyük veya buna eşit olup olmadığını denetler.
{
"$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'))]"
}
}
}
Yukarıdaki örnekten varsayılan değerleri içeren çıkış:
Adı | Tür | Değer |
---|---|---|
checkInts | Boole | False |
checkStrings | Boole | True |
less
less(arg1, arg2)
İlk değerin ikinci değerden küçük olup olmadığını denetler.
Bicep'te bunun yerine işlecini <
kullanın. Bkz. Küçüktür <.
Parametreler
Parametre | Zorunlu | Türü | Açıklama |
---|---|---|---|
arg1 | Yes | int veya dize | Daha az karşılaştırma için ilk değer. |
arg2 | Yes | int veya dize | Daha az karşılaştırma için ikinci değer. |
Dönüş değeri
İlk değer ikinci değerden küçükse True, değilse False döndürür.
Örnek
Aşağıdaki örnek, bir değerin diğerinden küçük olup olmadığını denetler.
{
"$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'))]"
}
}
}
Yukarıdaki örnekten varsayılan değerleri içeren çıkış:
Adı | Tür | Değer |
---|---|---|
checkInts | Boole | True |
checkStrings | Boole | False |
lessOrEquals
lessOrEquals(arg1, arg2)
İlk değerin ikinci değerden küçük veya buna eşit olup olmadığını denetler.
Bicep'te bunun yerine işlecini <=
kullanın. Bkz. Küçük veya eşittir <=.
Parametreler
Parametre | Zorunlu | Türü | Açıklama |
---|---|---|---|
arg1 | Yes | int veya dize | Küçük veya eşit karşılaştırma için ilk değer. |
arg2 | Yes | int veya dize | Küçük veya eşit karşılaştırma için ikinci değer. |
Dönüş değeri
İlk değer ikinci değerden küçük veya buna eşitse True döndürür; aksi takdirde False değerini döndürür.
Örnek
Aşağıdaki örnek, bir değerin diğerinden küçük veya buna eşit olup olmadığını denetler.
{
"$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'))]"
}
}
}
Yukarıdaki örnekten varsayılan değerleri içeren çıkış:
Adı | Tür | Değer |
---|---|---|
checkInts | Boole | True |
checkStrings | Boole | False |
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.