ruby 将CloudFormation模板从JSON转换为YAML

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby 将CloudFormation模板从JSON转换为YAML相关的知识,希望对你有一定的参考价值。

#!/usr/bin/env ruby

require 'yaml'
require 'json'
require 'optparse'
require 'ostruct'
require 'fileutils'

#quit unless our script gets two command line arguments
unless ARGV.length == 3
  puts "Dude, not the right number of arguments."
  puts "Usage: ruby YJ_Convert.rb [-j][-y] json_file.json yaml_file.yaml\n"
  exit
end

$json_file = ARGV[1]
$yaml_file = ARGV[2]

options = OpenStruct.new
OptionParser.new do |opt|
  opt.on('-j', '--json', 'Convert to JSON') { |o| options.json = o }
  opt.on('-y', '--yaml', 'Convert to YAML') { |o| options.yaml = o }
end.parse!

case
  when options.yaml == true
    y_file = File.open("#{$yaml_file}", 'a')
    y_file.write(YAML.dump(JSON.parse(IO.read($json_file))))
    y_file.close
    puts "Converted to YAML. Output file is #{$yaml_file}"

  when options.json == true
    j_file = YAML.load_file(File.open("#{$yaml_file}", 'r'))
    File.write "#{$json_file}", JSON.pretty_generate(j_file)
    puts "Converted to JSON. Output file is #{$json_file}"
end

以上是关于ruby 将CloudFormation模板从JSON转换为YAML的主要内容,如果未能解决你的问题,请参考以下文章

将多个参数从外部文件传递到 cloudformation 模板并使用带有 ref 的值

使用 Boto 从 CloudFormation 模板返回输出?

从 CloudFormation 模板中的 DropDownList 中选择多个值

如何从 cloudformation 模板中的参数文件传递公钥?

从 VPC 内的另一个 cloudformation 模板引用 SecurityGroup

如何从 aws cloudformation 模板为特定资源类型创建堆栈