【问题标题】:How do I escape an opening square bracket in an ARM template?如何在 ARM 模板中转义左方括号?
【发布时间】:2018-08-07 22:31:10
【问题描述】:

我在应用程序设置配置的属性下有如下内容:

"my_setting" : "[{width:1, height:2}]"

我希望值中包含的字符串(包括方括号)出现在应用程序设置中。不幸的是,左方括号表示一个函数,因此部署会引发异常。如何转义开头的方括号?

【问题讨论】:

  • 我认为 \ 在 arm 模板中用作转义字符,但我不确定它是否适用于 []
  • 不幸的是,无法以这种方式转义括号。
  • 就像我说的... ;)

标签: azure azure-resource-manager


【解决方案1】:

ARM 模板的转义序列是左括号本身(即将两个放在一起)

"my_setting" : "[[{width:1, height:2}]"

【讨论】:

    【解决方案2】:

    我怎样才能避开开头的方括号?

    我们可以使用concat函数来避免使用特殊字符

    "variables": {
       ...
        "left": "[",
        "right": "]",
        ...
      },
    

    请尝试使用以下代码。它在我这边工作正常。

    "my_setting": "[concat(variables('left'),'{width:1, height:2}',variables('right'))]",
    

    【讨论】:

    • 聪明,谢谢。很遗憾我们不得不走这条老生常谈的路线。 “left”变量也显示为令人讨厌的语法错误(但它的作用就像一个魅力)。
    猜你喜欢
    • 2016-03-03
    • 2012-04-01
    • 2012-12-06
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    • 2019-08-16
    • 1970-01-01
    相关资源
    最近更新 更多