Aracılığıyla paylaş


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.

Coalesce

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 birbirine eşit olup olmadığını denetler.

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

Yukarıdaki örnekten varsayılan değerleri içeren çıkış:

Adı Tür Değer
checkInts Boole True
checkStrings Boole True
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.