如何在Bicep参数数组中转义前导方括号?
解决Bicep模板中前导方括号导致的部署验证错误
问题原因
你遇到的「Deployment template language expression evaluation failed」错误,本质是Bicep/ARM模板会把字符串开头的[当成表达式的起始标记,尝试解析括号内的内容,但这里你只是想把[xxxxxx]作为普通字符串使用,因此触发了语法解析错误。直接给字符串加额外方括号虽然能通过验证,但会导致最终输出多一个多余的括号,这不是合理的解决方式。
正确解决方案
在Bicep中,若要在字符串里保留单个方括号,需要使用双括号转义:
- 用
[[替代单个[ - 用
]]替代单个]
转义后的字符串会被Bicep自动编译为单个方括号的普通字符串,既不会触发表达式解析逻辑,也不会产生多余括号。
修改后的示例代码
var test='[[xxxxxx]]' var arr=[ { name: 'varname' value: test } ]
这样部署时,test变量的值会被正确解析为[xxxxxx],既能通过模板验证,也符合你的预期输出。
内容的提问来源于stack exchange,提问作者J.Hook
相关产品推荐
相关产品推荐

