【问题标题】:Preserving YAML space while expanding variables in CloudFormation template在 CloudFormation 模板中扩展变量时保留 YAML 空间
【发布时间】:2021-11-23 23:33:52
【问题描述】:

我的 CloudFormation 模板中有一个部分如下所示:

  Employees:
    - hr: 
        - office: !Join [ '_', [ 'region', !Ref 'AWS::Region' ] ]

当我打开堆栈并使用 golang gopkg.in/yaml.v2 包将 Employees 中的值转换为 yaml 时,空格被去除,因此输出如下所示:

        - hr: 
        - office: region_us-east-1

当我要求 yaml 通过执行以下操作来保留间距时:

  Employees:
    - hr: >
        - office: !Join [ '_', [ 'region', !Ref 'AWS::Region' ] ]

模板中的扩展没有发生,但保留了空格,输出如下:

        - hr: 
          - office: !Join [ '_', [ 'region', !Ref 'AWS::Region' ] ]

如何同时扩展 CloudFormation 变量并保留 yaml 缩进?

【问题讨论】:

  • 可悲的是,不清楚你想做什么。您使用 > 的第二个示例只是创建了一个字符串。第一个例子有什么问题?扩展有效,所以看起来没问题?
  • @Marcin 在第一个示例中,前导空格被删除,所以我最终得到了第二个示例中的内容。 office 应该嵌套在 hr 下,而不是新条目。
  • 你能提供一个结果字符串的例子吗?

标签: yaml amazon-cloudformation


【解决方案1】:

与 CloudFormation 本身相比,您使用的 golang 包似乎更成问题,但您可以通过使用显式 JSON 语法来解决该问题,其中空格被去除。这将导致这样的事情(未经测试):

Employees:
    - hr: [ { office: !Join [ '_', [ 'region', !Ref 'AWS::Region' ] ] } ]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-31
    • 2018-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-11
    • 2021-08-21
    • 2021-02-07
    相关资源
    最近更新 更多