我是红宝石的新手。 我想使用简单的yml设置文件 这是我的代码
#!/usr/bin/ruby
require 'rubygems'
require 'aws-sdk'
require 'yaml'
AWS_CON = Yaml.load_file("AWSsettings.yml") unless defined? AWS_CON
def launchEC2(count)
key_pair = ec2.key_pairs[AWS_CON['key_pair']]
image_id
ec2 = AWS::EC2.new.regions[AWS_CON['region']]
instances = ec2.instances.create(
:image_id => AWS_CON['image_id'],
:instance_type => AWS_CON['instance_type'],
:count => count,
:security_groups => AWS_CON['security_groups'],
:key_pair => key_pair)
end
launchEC2(2)
我的yml文件看起来像
# AWS yml file
key_pair: xxx
region: us-west-2
image_id: ami-b5a7ea85
instance_type: t2.micro
security_groups: xxx
当我运行它时,我
./LaunchEC2s.rb:6:in `<main>': uninitialized constant Yaml (NameError)
对不起,这个问题很愚蠢,但我无法弄清楚 我做错了什么?
答案 0 :(得分:3)
我很确定你想YAML.load_file("AWSsettings.yml")
而不是Yaml.load_file("AWSsettings.yml")
(差异就是所有上限)。
答案 1 :(得分:1)
试试这个: 在config /
中创建一个yml文件说config / ec2_keys.yml
development:
region: us-west-2
image_id: ami-b5a7ea85
instance_type: t2.micro
security_groups: xxx
现在你想要为它们初始化一次。为此创建这一行文件: 配置/初始化/ load_ec2.rb
EC2 = YAML.load(ERB.new(File.read("#{Rails.root.to_s}/config/ec2_keys.yml")).result)[Rails.env]
现在在任何需要的地方使用常量:
EC2["region"]
#=> "us-west-2"
EC2["image_id"]
#=> "ami-b5a7ea85"