How to concatenate a parameter with a string value in ARM template: 无法解析模板语言表达式
How to concatenate a parameter with a string value in ARM template: Unable to parse template language expression
我需要在 ARM 模板(JSON 文件)中连接参数,我遇到了 "/subscriptions/@{encodeURIComponent([parameters('id')])}/providers"
的问题。看起来 [parameters('id')]
没有被识别为参数,它只是作为文本传递。
我知道可以使用 union
表达式,但在我的例子中,我不需要只合并两个单独的参数(根据我的理解,这就是 union
所做的) .我需要构造一个字符串。
我想到的另一个选择是在 JSON 文件之外执行此操作,这样我就可以将 "/subscriptions/@{encodeURIComponent([parameters('id')])}/providers"
作为单个参数传递。但我发现这种方法无效,因为在我的 ARM 模板中我有 10 个类似的变量,我只需要在其中“粘贴”id
.
的值
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"id": {
"type": "string"
}
},
"variables": {},
"resources": [{
...
"path": "/subscriptions/@{encodeURIComponent([parameters('id')])}/providers",
...
}]
}
在 ARM 模板中,您可以使用 concat & uriComponent 函数来连接参数:
"[concat('/subscriptions/', uriComponent(parameters('id')), '/providers')]"
在你的例子中,它就像:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"id": {
"type": "string"
}
},
"variables": {},
"resources": [{
...
"path": "[concat('/subscriptions/', uriComponent(parameters('id')), '/providers')]",
...
}]
}
请参阅 concat & uriComponent 的文档。
我需要在 ARM 模板(JSON 文件)中连接参数,我遇到了 "/subscriptions/@{encodeURIComponent([parameters('id')])}/providers"
的问题。看起来 [parameters('id')]
没有被识别为参数,它只是作为文本传递。
我知道可以使用 union
表达式,但在我的例子中,我不需要只合并两个单独的参数(根据我的理解,这就是 union
所做的) .我需要构造一个字符串。
我想到的另一个选择是在 JSON 文件之外执行此操作,这样我就可以将 "/subscriptions/@{encodeURIComponent([parameters('id')])}/providers"
作为单个参数传递。但我发现这种方法无效,因为在我的 ARM 模板中我有 10 个类似的变量,我只需要在其中“粘贴”id
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"id": {
"type": "string"
}
},
"variables": {},
"resources": [{
...
"path": "/subscriptions/@{encodeURIComponent([parameters('id')])}/providers",
...
}]
}
在 ARM 模板中,您可以使用 concat & uriComponent 函数来连接参数:
"[concat('/subscriptions/', uriComponent(parameters('id')), '/providers')]"
在你的例子中,它就像:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"id": {
"type": "string"
}
},
"variables": {},
"resources": [{
...
"path": "[concat('/subscriptions/', uriComponent(parameters('id')), '/providers')]",
...
}]
}
请参阅 concat & uriComponent 的文档。