ARM 模板将字符串数组转换为对象数组
ARM template transform array of strings into array of objects
不确定是否存在此功能。我正在尝试将逗号分隔的 IP 地址列表从 Azure DevOps 构建参数转换为对象数组。到目前为止,它只是将一个逗号分隔的列表拆分为一个字符串数组,但模板需要一个对象数组。
参数值是以逗号分隔的 IP 地址列表。
例如"192.168.0.1,192.168.0.2/32,127.0.0.1"
ARM 模板如下所示:
"variables": {
"ipaddresses": "[split(parameters('ipaddresses'), ',')]"
},
"resources": [
...
"ipRestrictions": "[stringArrToObjArr(variables('ipaddresses'))]" <--
...
]
理想情况下,使用上面的箭头函数会产生 ipRestictions 的值,如下所示:
[
{
"ipAddress": "192.168.0.1"
},
{
"ipAddress": "192.168.0.2/32"
},
{
"ipAddress": "127.0.0.1"
},
]
您可以使用 copy()
函数来做到这一点:
"variables": {
"ipaddresses": "[split(parameters('ipaddresses'), ',')]"
"copy": [
{
"name": "myVariable",
"count": "[length(variables('ipaddresses'))]",
"input": {
"ipAddress": "[variables('ipaddresses')[copyIndex('myVariable')]]"
}
}
]
},
这会将 return 所需的对象放入名为 myVariable
的变量中。如果你想重命名它 >> 不要忘记在 copyIndex()
中重命名它
不确定是否存在此功能。我正在尝试将逗号分隔的 IP 地址列表从 Azure DevOps 构建参数转换为对象数组。到目前为止,它只是将一个逗号分隔的列表拆分为一个字符串数组,但模板需要一个对象数组。
参数值是以逗号分隔的 IP 地址列表。 例如"192.168.0.1,192.168.0.2/32,127.0.0.1"
ARM 模板如下所示:
"variables": {
"ipaddresses": "[split(parameters('ipaddresses'), ',')]"
},
"resources": [
...
"ipRestrictions": "[stringArrToObjArr(variables('ipaddresses'))]" <--
...
]
理想情况下,使用上面的箭头函数会产生 ipRestictions 的值,如下所示:
[
{
"ipAddress": "192.168.0.1"
},
{
"ipAddress": "192.168.0.2/32"
},
{
"ipAddress": "127.0.0.1"
},
]
您可以使用 copy()
函数来做到这一点:
"variables": {
"ipaddresses": "[split(parameters('ipaddresses'), ',')]"
"copy": [
{
"name": "myVariable",
"count": "[length(variables('ipaddresses'))]",
"input": {
"ipAddress": "[variables('ipaddresses')[copyIndex('myVariable')]]"
}
}
]
},
这会将 return 所需的对象放入名为 myVariable
的变量中。如果你想重命名它 >> 不要忘记在 copyIndex()
中重命名它