2013-04-18 3 views
3

Folks, J'essaie d'insérer les balises EC2 via les rôles ruby ​​aws-sdk et iam. Le bit de code suivant génère une erreur ci-dessous. Qu'est-ce que je fais mal?Utilisation de ruby ​​et aws-sdk pour extraire les tags ec2

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 

Après la sortie:

/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 
+0

bug dans aws-sdk :) fixe – Cmag

Répondre

3

qui semble être un bug qui a déjà été annoncé aujourd'hui: undefined method `continue_timeout=', vous pouvez essayer de pointer à la branche principale du dépôt git car il y a déjà un patch pour elle .

Edit:

Vous pouvez déjà pointer la dernière version en rubygems depuis qu'ils ont déjà déployé le correctif sur version 1.9.1: https://rubygems.org/gems/aws-sdk

+0

http://stackoverflow.com/questions/5902488/uninstall-old-ruby-gems-versions – Cmag

+0

@Clustermagnet Je ne comprends pas il, ce lien ne semble pas avoir quelque chose à voir avec cela. – fmendez

Questions connexes