如何将数组连接到 ARM 模板中的字符串中?
How do I join array into a string in ARM template?
我有 ARM 模板参数,它是字符串数组(如下所示)。如何创建 string
类型的变量,即这些值的 join
,即 "dominos","boeing"
?
"parameters": {
"clientObject": {
"value": [
"dominos",
"boeing"
]
}
}
据我所知,没有简单的方法,唯一可行的解决方案 - 使用循环部署,伪代码如下所示:
{
name: concat('deploy-', copyIndex(1))
type: microsoft.resources/deployments
apiVersion: xxx
copy: {
count: length(parameters('clientObject')
name: yyy
mode: serial // (don't remember exact name, not parallel)
}
properties: {
parameters: {
param1: parameters('clientObject')[copyIndex()]
state: reference(concat('deploy-', copyIndex()).outputs.your_output.value
}
}
}
要检索它,您将使用:
reference(concat('deploy-', length(parameters('clientObject')).outputs.your_output.value
并且在嵌套模板中,您只需将当前 param1 传递给模板并将其连接到状态(其中声明它是前一个嵌套模板的输出 运行)
如果您知道数组(及其静态)的长度,您可以硬核一个 concat 函数或(更好)在 arm 模板之外进行连接
您可以使用 string() 函数,例如
[string(parameters('clientObject'))]
如果您不需要方括号,您可以使用 replace()
函数。
我有 ARM 模板参数,它是字符串数组(如下所示)。如何创建 string
类型的变量,即这些值的 join
,即 "dominos","boeing"
?
"parameters": {
"clientObject": {
"value": [
"dominos",
"boeing"
]
}
}
据我所知,没有简单的方法,唯一可行的解决方案 - 使用循环部署,伪代码如下所示:
{
name: concat('deploy-', copyIndex(1))
type: microsoft.resources/deployments
apiVersion: xxx
copy: {
count: length(parameters('clientObject')
name: yyy
mode: serial // (don't remember exact name, not parallel)
}
properties: {
parameters: {
param1: parameters('clientObject')[copyIndex()]
state: reference(concat('deploy-', copyIndex()).outputs.your_output.value
}
}
}
要检索它,您将使用:
reference(concat('deploy-', length(parameters('clientObject')).outputs.your_output.value
并且在嵌套模板中,您只需将当前 param1 传递给模板并将其连接到状态(其中声明它是前一个嵌套模板的输出 运行)
如果您知道数组(及其静态)的长度,您可以硬核一个 concat 函数或(更好)在 arm 模板之外进行连接
您可以使用 string() 函数,例如
[string(parameters('clientObject'))]
如果您不需要方括号,您可以使用 replace()
函数。