ARM 範本的邏輯函數

Resource Manager 提供數個函數,在 Azure Resource Manager 範本中比較 ARM 範本 (ARM 範本) :

and(arg1, arg2, ...)

檢查所有參數值是否都為 True。

andBicep 不支援此函數,請改為使用and

參數

參數 必填 類型 描述
arg1 是的 布林 檢查是否為 True 的第一個值。
arg2 是的 布林 檢查是否為 True 的第二個值。
更多引數 布林 更多引數以檢查是否為 True。

Return 值

如果 所有值 都為 True,則會返回 True;否則為 False

例子

下列範例顯示如何使用邏輯函數。

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

上述範例的輸出為:

名字 類型 價值
和ExampleOutput Bool
或ExampleOutput Bool
notExampleOutput Bool

Bool

bool(arg1)

將參數轉換為布林值。

參數

參數 必填 類型 描述
arg1 是的 字串或 int 要轉換成布林值的值。

Return 值

轉換值的布林值。

言論

您也可以使用 true () false () 來取得布林值。

例子

下列範例顯示如何使用布林值與字串或整數。

{
  "$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)]"
    }
  }
}

上述範例中預設值的輸出為:

名字 類型 價值
trueString Bool
falseString Bool
trueInt Bool
falseInt Bool

false()

會返回 false。

false 函數在 Bicep 中不可用。 請 false 改為使用關鍵字。

參數

false 函數不接受任何參數。

Return 值

永遠為 false 的布林值。

例子

下列範例會返回錯誤輸出值。

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "falseOutput": {
      "type": "bool",
      "value": "[false()]"
    }
  }
}

上述範例的輸出為:

名字 類型 價值
falseOutput Bool

如果

if(condition, trueValue, falseValue)

根據條件是 True 或 false,會傳回值。

ifBicep 不支援此函數。 請改為使用 ?: 運算子

參數

參數 必填 類型 描述
條件 是的 布林 這是要檢查它是否為 True 或 false 的值。
trueValue 是的 字串、int、物件或陣列 條件為 True 時要返回的值。
falseValue 是的 字串、int、物件或陣列 條件為 False 時要返回的值。

Return 值

當第一個參數為 True 時,會返回第二 個參數;否則,會返回第三個參數。

言論

當條件為 True時,只會評估 true 值。 當條件為 False時,只會評估 false 值。 您可以使用 if 函數,包含僅具有條件有效的運算式。 例如,您可以參照存在一個條件,但另一個條件下的資源。 以下一節顯示條件式評估運算式的範例。

例子

下列範例顯示如何使用 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'))]"
    }
  }
}

上述範例的輸出為:

名字 類型 價值
yesOutput 字串 是的
noOutput 字串
objectOutput 物件 { "test": "value1" }

下列 範例範本 顯示如何使用此函數與僅具有條件有效的運算式。

{
  "$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": "2017-03-30",
      "name": "[concat(parameters('vmName'),'/omsOnboarding')]",
      "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, json('null'))]"
        },
        "protectedSettings": {
          "workspaceKey": "[if(not(empty(parameters('logAnalytics'))), listKeys(parameters('logAnalytics'), '2015-11-01-preview').primarySharedKey, json('null'))]"
        }
      }
    }
  ],
  "outputs": {
    "mgmtStatus": {
      "type": "string",
      "value": "[if(not(empty(parameters('logAnalytics'))), 'Enabled monitoring for VM!', 'Nothing to enable')]"
    }
  }
}

not(arg1)

將布林值轉換成相反的值。

Bicep 不支援此函數 not ,請改為使用 not

參數

參數 必填 類型 描述
arg1 是的 布林 要轉換的值。

Return 值

參數為 False時,會返回True。參數為 True 時,會返回 False

例子

下列範例顯示如何使用邏輯函數。

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

上述範例的輸出為:

名字 類型 價值
和ExampleOutput Bool
或ExampleOutput Bool
notExampleOutput Bool

下列範例使用 notnot

{
  "$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))]"
    }
  }
}

上述範例的輸出為:

名字 類型 價值
checkNotEquals Bool

or(arg1, arg2, ...)

檢查任何參數值是否為 True。

Bicep 不支援此函數,請改為使用 or ||or運算子。

參數

參數 必填 類型 描述
arg1 是的 布林 檢查是否為 True 的第一個值。
arg2 是的 布林 檢查是否為 True 的第二個值。
更多引數 布林 更多引數以檢查是否為 True。

Return 值

如果 有任何值 為 True,則會返回 True;否則為 False

例子

下列範例顯示如何使用邏輯函數。

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

上述範例的輸出為:

名字 類型 價值
和ExampleOutput Bool
或ExampleOutput Bool
notExampleOutput Bool

true()

會返回 true。

true 函數在 Bicep 中不可用。 請 true 改為使用關鍵字。

參數

true 函數不接受任何參數。

Return 值

永遠為 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()]"
    }
  }
}

上述範例的輸出為:

名字 類型 價值
trueOutput Bool

下一個步驟

  • 有關 ARM 範本中各節的描述,請參閱瞭解 ARM 範本的結構 和語法