将Yaml cloudformation模板转换为Json

时间:2019-08-13 08:21:45

标签: amazon-cloudformation

我不知道如何将Yaml cloudformation模板的以下部分转换为json模板。任何人都可以在这里指导我。

Tags: 
- Key: Name 
  Value: !Join 
        - '' 
        - - !FindInMap  
              - BusinessUnitCode 
              - !Ref BusinessUnit 
              - Code 
          - A 
          - !FindInMap  
              - AWSRegionCode 
              - !Ref 'AWS::Region' 
              - Code 
          - '-' 
          - !FindInMap  
              - AccountsCode 
              - !Ref Account 
              - Code 
          - '-' 
          - !FindInMap  
              - ProdLevelCode 
              - !Ref ProductionLevel 
              - Code 
          - '-' 
          - !FindInMap  
              - ServerFunctionCode 
              - !Ref ServerFunction 
              - Code 
          - '-' 
          - !FindInMap  
              - SGFunctionCode 
              - !Ref SecurityGroupFunction 
              - Code 
          - '-'                   
          - !Ref IncrementCode

尽管我知道没有必要进行此转换,因为json和yaml在cloudformation中的工作原理相同,但必须按照授权进行此操作。

3 个答案:

答案 0 :(得分:5)

AWS Console可以帮助您。 在template designer中打开您的CloudFormation模板。

  

CloudFormation>选择堆栈>模板>在设计器中查看

然后,您可以通过选择模板语言为Json轻松地转换模板。

答案 1 :(得分:2)

如果您希望使用命令行解决方案将JSON转换为YAML,反之亦然,请考虑使用aws-cfn-template-flip项目。

安装库:

▶ pip install cfn_flip

用法:

▶ cfn-flip 
Usage: cfn-flip [OPTIONS] [INPUT] [OUTPUT]

  AWS CloudFormation Template Flip is a tool that converts AWS
  CloudFormation templates between JSON and YAML formats, making use of the
  YAML format's short function syntax where possible.

Options:
  -i, --input [json|yaml]   Specify the input format. Overrides -j and -y
                            flags.
  -o, --output [json|yaml]  Specify the output format. Overrides -j, -y, and
                            -n flags.
  -j, --json                Convert to JSON. Assume the input is YAML.
  -y, --yaml                Convert to YAML. Assume the input is JSON.
  -c, --clean               Performs some opinionated cleanup on your
                            template.
  -l, --long                Use long-form syntax for functions when converting
                            to YAML.
  -n, --no-flip             Perform other operations but do not flip the
                            output format.
  --version                 Show the version and exit.
  --help                    Show this message and exit.

如果您在YAML中拥有CloudFormation模板,则可以使用以下方法将其翻转为JSON:

▶ cfn-flip -j cloudformation.yml | jq . > cloudformation.json

使用JQ是可选的,只是为了清理格式。

答案 2 :(得分:0)

我使用了它,它的作用就像一个魅力:https://cfnflip.com/

您可以将JSON转换为YAML,并将YAML转换为JSON。

复制/粘贴,将检测并翻转。如果您也想将其设置为自己的内部资源,则可以使用开源和源代码。 (不,这不是我的也不是赞助)。

这不仅是普通的翻转工具,而且还特别适合CloudFormation。