2015-06-20 49 views
1

試圖讓紅寶石紅寶石AWS SDK工作,但不斷收到以下錯誤:紅寶石AWS-SK:未定義的方法

aws.rb:10:<main>': undefined method情況下爲#(NoMethodError)

從StackOverflow上的其他帖子,aws-sdk的v2從AWS更改爲Aws。我也試過Aws :: EC2.new

require 'aws-sdk' 
ec2 = Aws::EC2::Client.new(
    access_key_id: 'mudd', 
    secret_access_key: 'butt', 
    region: 'us-east-1' 
) 

ec2.instances 

回答

1

Ruby SDK的V1和v2在這裏有不同的方法。在第2版中,您將決定使用客戶端API還是資源API。客戶端API爲API操作提供了一對一的方法映射。資源API提供了一個類似於V1 SDK的面向對象的接口。你似乎在尋找這個後者的界面。

定義了操作/方法的資源接口返回對象,如Aws::EC2::Instance#terminate

ec2 = Aws::EC2::Resource.new 
ec2.instances.each do |instance| 
    puts instance.id 
end 

或者,您可以使用客戶端API。客戶端返回具有相似屬性的僅數據對象,但沒有其他操作/方法。

ec2 = Aws::EC2::Client.new 
ec2.describe_instances.each do |page| 
    page.reservations.each do |reservation| 
    reservation.instances.each do |instance| 
     puts instance.instance_id 
    end 
    end 
end 
相關問題