Сохранение пространства YAML при расширении переменных в шаблоне CloudFormation

#yaml #amazon-cloudformation

Вопрос:

У меня есть раздел в моем шаблоне CloudFormation, который выглядит следующим образом:

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

Когда я поднимаю стек и преобразую значения в Employees yaml gopkg.in/yaml.v2 пакет golang, пробелы удаляются, так что вывод выглядит следующим образом:

         - hr: 
        - office: region_us-east-1
 

Когда я прошу yaml сохранить интервал, сделав что-то вроде этого:

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

Расширение в шаблоне не происходит, НО пробелы сохраняются, и вывод выглядит следующим образом:

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

Как я могу одновременно расширить переменную CloudFormation и сохранить отступ yaml?

Комментарии:

1. К сожалению, неясно, что вы хотите делать. Ваш второй пример с > помощью просто создает строку. Что не так с первым примером? Расширение работает, так что, кажется, все в порядке?

2. @Marcin в первом примере начальные пробелы удалены, поэтому я заканчиваю тем, что в моем втором примере. office должно быть вложено в hr , а не в новую запись.

3. Можете ли вы привести пример результирующей строки?

Ответ №1:

Похоже, что это больше проблема с используемым вами пакетом golang, чем с самой CloudFormation, но вы, вероятно, могли бы обойти проблему, используя явный синтаксис JSON, в котором пробелы удаляются. Это привело бы к чему-то подобному (непроверенному):

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