从 PowerShell 将哈希表作为参数传递给 ARM 模板
Pass hashtable as parametwr to ARM template from PowerShell
我想替换我的参数文件,只用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"]}}
但我总是收到错误。使用 hash table 作为参数的正确语法是什么?
您的示例不是哈希 table。它只是一个未加引号的 JSON 字符串。
散列 table 在 PowerShell 中定义为
@{}
数组是
@()
所以你会考虑构建如下所示的东西:
-subnets @{
settings = @(
@{
name = 'foo'
address = 'bar'
}
)
}
等等。
您可以使用 ConvertFrom-Json
和 ConvertTo-Json
来转换 JSON to/from PowerShell 散列 table 和数组。
我想替换我的参数文件,只用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"]}}
但我总是收到错误。使用 hash table 作为参数的正确语法是什么?
您的示例不是哈希 table。它只是一个未加引号的 JSON 字符串。
散列 table 在 PowerShell 中定义为
@{}
数组是
@()
所以你会考虑构建如下所示的东西:
-subnets @{
settings = @(
@{
name = 'foo'
address = 'bar'
}
)
}
等等。
您可以使用 ConvertFrom-Json
和 ConvertTo-Json
来转换 JSON to/from PowerShell 散列 table 和数组。