在 CloudFormation 模板中扩展变量时保留 YAML space

Preserving YAML space while expanding variables in CloudFormation template

我的 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 缩进?

您使用的 golang 包似乎比 CloudFormation 本身更容易出现问题,但您可能可以通过使用显式 JSON 语法来解决该问题,其中空格被删除.这将导致类似这样的结果(未经测试):

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