Arm模板:将数组的每个元素与常量值连接起来
Arm template: concatenate each element of an array with constant value
创建 arm 模板时,是否可以将数组的每个元素与常量字符串连接起来?下面是我创建的参数和我要创建的资源。
"parameters": {
"servicesNames": {
"type": "array",
"defaultValue": [
"test-api-content",
"test-svc-content"
]
}
}
{
"apiVersion": "2016-03-30",
"type": "Microsoft.Network/publicIPAddresses",
"name": "[concat(parameters('servicesNames'),'pip')]",
"location": "[resourceGroup().location]",
"copy": {
"name": "PIPaddresscopy",
"count": "[length(parameters('servicesNames'))]"
},
"tags": {
"displayName": "PublicIPAddress"
}
}
我希望使用
创建资源名称的输出
"test-api-contentpip"
我怎么会收到以下错误
The provided parameters for language function 'concat' are invalid.
Either all or none of the parameters must be an array
请建议我如何连接元素的每个值
您可以通过修改 name 属性 来连接元素的每个值,如下所示。publicIpAddress 资源。
"name": "[concat(parameters('servicesNames')[copyIndex()], 'pip')]",
此函数始终与复制对象一起使用。
如果没有为偏移量提供值,则返回当前迭代值。迭代值从零开始。
只是添加到现有答案中(因为我认为它有点不清楚)。
您要对代码执行的操作 - 将数组与字符串连接,您需要做的是将数组的每个元素与字符串连接。
有一个 copyIndex()
函数表示循环的当前迭代。您可以使用 array[number]
访问数组的特定成员。所以
parameters('servicesNames')[copyIndex()]
在您的情况下表示 parameters('servicesNames')[0]
和 parameters('servicesNames')[1]
。这实际上意味着您已经迭代了这个数组。
创建 arm 模板时,是否可以将数组的每个元素与常量字符串连接起来?下面是我创建的参数和我要创建的资源。
"parameters": {
"servicesNames": {
"type": "array",
"defaultValue": [
"test-api-content",
"test-svc-content"
]
}
}
{
"apiVersion": "2016-03-30",
"type": "Microsoft.Network/publicIPAddresses",
"name": "[concat(parameters('servicesNames'),'pip')]",
"location": "[resourceGroup().location]",
"copy": {
"name": "PIPaddresscopy",
"count": "[length(parameters('servicesNames'))]"
},
"tags": {
"displayName": "PublicIPAddress"
}
}
我希望使用
创建资源名称的输出"test-api-contentpip"
我怎么会收到以下错误
The provided parameters for language function 'concat' are invalid. Either all or none of the parameters must be an array
请建议我如何连接元素的每个值
您可以通过修改 name 属性 来连接元素的每个值,如下所示。publicIpAddress 资源。
"name": "[concat(parameters('servicesNames')[copyIndex()], 'pip')]",
此函数始终与复制对象一起使用。
如果没有为偏移量提供值,则返回当前迭代值。迭代值从零开始。
只是添加到现有答案中(因为我认为它有点不清楚)。
您要对代码执行的操作 - 将数组与字符串连接,您需要做的是将数组的每个元素与字符串连接。
有一个 copyIndex()
函数表示循环的当前迭代。您可以使用 array[number]
访问数组的特定成员。所以
parameters('servicesNames')[copyIndex()]
在您的情况下表示 parameters('servicesNames')[0]
和 parameters('servicesNames')[1]
。这实际上意味着您已经迭代了这个数组。