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:

Bahşiş

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.

ve

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 Evet boolean Doğru olup olmadığını denetlemek için ilk değer.
arg2 Evet boolean Doğru olup olmadığını denetlemek için ikinci değer.
diğer bağımsız değişkenler No 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ış:

Veri Akışı Adı Tür Value
andExampleOutput Boole False
orExampleOutput Boole Doğru
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 Evet 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ış:

Veri Akışı Adı Tür Value
trueString Boole Doğru
falseString Boole False
trueInt Boole Doğru
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ış:

Veri Akışı Adı Tür Value
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 Evet boolean Doğru mu yoksa yanlış mı olduğunu denetlemek için gereken değer.
Truevalue Evet string, int, object veya array Koşul true olduğunda döndürülecek değer.
Falsevalue Evet 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ış:

Veri Akışı Adı Tür Value
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 Evet 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ış:

Veri Akışı Adı Tür Value
andExampleOutput Boole False
orExampleOutput Boole Doğru
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ış:

Veri Akışı Adı Tür Value
checkNotEquals Boole Doğru

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 Evet boolean Doğru olup olmadığını denetlemek için ilk değer.
arg2 Evet boolean Doğru olup olmadığını denetlemek için ikinci değer.
diğer bağımsız değişkenler No 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ış:

Veri Akışı Adı Tür Value
andExampleOutput Boole False
orExampleOutput Boole Doğru
notExampleOutput Boole False

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ış:

Veri Akışı Adı Tür Value
trueOutput Boole Doğru

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.