在 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' ] ] } ]
我的 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' ] ] } ]