簡體   English   中英

Azure ARM 模板中的多個 IP 地址變量

[英]Multiple IP address variable in Azure ARM Template

如果我使用 ARM 模板在 Azure 中創建 IP 組並希望添加多個 IP 地址作為參數而不是將它們放入資源主體中,這可能嗎?

模板如下

{
  "type": "Microsoft.Network/ipGroups",
  "apiVersion": "2021-05-01",
  "name": "string",
  "location": "string",
  "tags": {
    "tagName1": "tagValue1",
    "tagName2": "tagValue2"
  },
  "properties": {
    "ipAddresses": [ "10.10.10.10",
      "10.10.10.11" ]
  }
}

如果我創建如下所示的參數

        "ipgipaddress": {
            "type": "string
            "Value": 
                "10.10.10.10",
                "10.10.10.11"
        }

並將代碼更新為

{
  "type": "Microsoft.Network/ipGroups",
  "apiVersion": "2021-05-01",
  "name": "string",
  "location": "string",
  "tags": {
    "tagName1": "tagValue1",
    "tagName2": "tagValue2"
  },
  "properties": {
    "ipAddresses": "[parameters('ipgroupsettings')]"
  }
}

想要添加多個 IP 地址作為參數,而不是將它們放在資源主體中,這可能嗎?

是的,有可能,您可以添加多個 IP 地址作為參數。 根據文檔,屬性ipAddresses是字符串數組類型。

為了重現這一點,在我們的 ARM 模板中,我們將這些ipaddresses初始化為數組類型的參數,並使用"[paramerter(ipaddresses)]"進一步傳遞這些值。

我們對此進行了測試,它工作正常。

這是 ARM 模板

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "ipaddress":{
            "type": "array",
            "defaultValue": ["10.0.1.0/27","10.0.2.0/27"]
        }
    },
    "functions": [],
    "variables": {},
    "resources": [{
        "type": "Microsoft.Network/ipGroups",
        "apiVersion": "2020-11-01",
        "name": "testipgroups",
        "location":"[resourceGroup().location]",
        "properties":{
            "ipAddresses": "[parameters('ipaddress')]"
        }
    }
    ],
    "outputs": {}
}

以下是樣品 Output 供參考:

在此處輸入圖像描述

    {
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "ipaddress":{
            "type": "string",
            "defaultValue": "10.0.1.0/27,10.0.2.0/27"
        }
    },
    "functions": [],
    "variables": {
      "iparray": "[split(parameters('ipaddress'),',')]"

     },
    "resources": [{
        "type": "Microsoft.Network/ipGroups",
        "apiVersion": "2020-11-01",
        "name": "testipgroups",
        "location":"[resourceGroup().location]",
        "properties":{
            "ipAddresses": "[variables('iparray')]"
        }
    }
    ],
    "outputs": {}
   }

如果您想節省時間以不帶太多雙引號 (" ") 的字符串形式提供輸入,請使用拆分函數並刪除定界符(上例中的逗號),這將創建一個 IP 數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM