Azure将哈希表作为参数与Powershell传递给ARM模板

时间:2019-01-16 18:20:07

标签: azure powershell arm-template

我想替换我的参数文件,只给参数加上powershell。我的参数文件如下所示:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "subnets": {
      "value": {
        "settings": [
          {
            "name": "firstSubnet",
            "addressPrefix": "10.0.0.0/24"
          },
          {
            "name": "secondSubnet",
            "addressPrefix": "10.0.1.0/24"
          }
        ]
      }
    }
  }
}

我尝试使用以下方法覆盖

-subnets {"settings":[{"name": "firstSubnet","addressPrefix": "10.0.0.0/24"},{"name": "secondSubnet","addressPrefix": "10.0.1.0/24"]}}

但是我一直在出错。将哈希表用作参数的正确语法是什么?

1 个答案:

答案 0 :(得分:1)

您的示例不是哈希表。这只是一个未引用的JSON字符串。

哈希表在PowerShell中定义为

@{}

和数组是

@()

因此,您将考虑构建如下所示的内容:

-subnets @{ 
             settings = @(
                 @{ 
                     name = 'foo'
                     address = 'bar'
                  }
             ) 
          }

以此类推。

您可以使用ConvertFrom-JsonConvertTo-Json在JSON与PowerShell哈希表和数组之间进行转换。