[英]Using ruby and aws-sdk to pull ec2 tags
Folks, I am trying to pull in the EC2 tags via ruby aws-sdk and iam roles. 伙计们,我试图通过ruby aws-sdk和iam角色拉入EC2标签。 The following bit of code produces error below.
以下代码产生以下错误。 What am I doing wrong?
我究竟做错了什么?
require 'rubygems'
require 'aws-sdk'
require 'fileutils'
ec2 = AWS::EC2.new()
instance_id = `wget -q -O - http://169.254.169.254/latest/meta-data/instance-id`
outdir = '/opt/facts/tags/'
unless File.directory?(outdir)
FileUtils.mkdir_p(outdir)
end
ec2= AWS::EC2.new()
instance = ec2.instances[instance_id]
tags = instance.tags
tags.each do |num|
File.open(outdir+num[0], "w") do |f|
f.write(num[1])
end
end
Following output: 以下输出:
/usr/lib/ruby/gems/1.8/gems/aws-sdk-1.9.0/lib/aws/core/http/connection_pool.rb:127:in `session_for': undefined method `continue_timeout=' for #<Net::HTTP ec2.us-east-1.amazonaws.com:443 open=false> (NoMethodError)
from /usr/lib/ruby/gems/1.8/gems/aws-sdk-1.9.0/lib/aws/core/http/net_http_handler.rb:52:in `handle'
from /usr/lib/ruby/gems/1.8/gems/aws-sdk-1.9.0/lib/aws/core/client.rb:236:in `make_sync_request'
from /usr/lib/ruby/gems/1.8/gems/aws-sdk-1.9.0/lib/aws/core/client.rb:262:in `retry_server_errors'
from /usr/lib/ruby/gems/1.8/gems/aws-sdk-1.9.0/lib/aws/core/client.rb:229:in `make_sync_request'
from /usr/lib/ruby/gems/1.8/gems/aws-sdk-1.9.0/lib/aws/core/client.rb:489:in `client_request'
from /usr/lib/ruby/gems/1.8/gems/aws-sdk-1.9.0/lib/aws/core/client.rb:371:in `log_client_request'
from /usr/lib/ruby/gems/1.8/gems/aws-sdk-1.9.0/lib/aws/core/client.rb:457:in `client_request'
from /usr/lib/ruby/gems/1.8/gems/aws-sdk-1.9.0/lib/aws/core/client.rb:353:in `return_or_raise'
from /usr/lib/ruby/gems/1.8/gems/aws-sdk-1.9.0/lib/aws/core/client.rb:456:in `client_request'
from (eval):3:in `describe_tags'
from /usr/lib/ruby/gems/1.8/gems/aws-sdk-1.9.0/lib/aws/ec2/filtered_collection.rb:44:in `send'
from /usr/lib/ruby/gems/1.8/gems/aws-sdk-1.9.0/lib/aws/ec2/filtered_collection.rb:44:in `filtered_request'
from /usr/lib/ruby/gems/1.8/gems/aws-sdk-1.9.0/lib/aws/ec2/resource_tag_collection.rb:156:in `each'
from ./puppetclient.rb:22
That seems to be a bug that was already reported today: undefined method `continue_timeout=' , you could try pointing to the main branch of the git repository since there's already a patch for it. 这似乎是今天已经报道的一个错误: 未定义的方法`continue_timeout =' ,你可以尝试指向git存储库的主分支,因为它已经有了一个补丁。
Edit: 编辑:
You can already point the latest version in rubygems
since they already deployed the fix on version 1.9.1
: https://rubygems.org/gems/aws-sdk 您已经可以在
rubygems
指出最新版本,因为他们已经在version 1.9.1
上部署了修复程序: https : //rubygems.org/gems/aws-sdk
There was a bug announced today in AWS-SDK-ruby https://github.com/aws/aws-sdk-ruby/issues/232 今天在AWS-SDK-ruby中宣布了一个错误https://github.com/aws/aws-sdk-ruby/issues/232
You can fix it by updating your gemfile 您可以通过更新gemfile来修复它
gem 'aws-sdk', "1.9.1"
And then running "bundle" 然后运行“捆绑”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.