Ruby aws-sk:未定义的方法
Ruby aws-sk: undefined method
尝试让 ruby 使用 ruby AWS SDK,但不断收到以下错误:
aws.rb:10:在 <main>': undefined method
个实例中 # (NoMethodError)
根据 Whosebug 上的其他帖子,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
Ruby SDK的V1和v2在这方面有不同的做法。在 v2 中,您决定使用客户端 APIs 还是资源 APIs。客户端 API 提供方法到 API 操作的一对一映射。资源 api 提供了一个类似于 V1 SDK 的面向对象的接口。您似乎在寻找后一个界面。
已定义 actions/methods 的资源接口 return 个对象,例如 Aws::EC2::Instance#terminate
.
ec2 = Aws::EC2::Resource.new
ec2.instances.each do |instance|
puts instance.id
end
或者,您可以使用客户端 API。客户端 return 具有相似属性但没有其他属性的纯数据对象 actions/methods。
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
尝试让 ruby 使用 ruby AWS SDK,但不断收到以下错误:
aws.rb:10:在 <main>': undefined method
个实例中 # (NoMethodError)
根据 Whosebug 上的其他帖子,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
Ruby SDK的V1和v2在这方面有不同的做法。在 v2 中,您决定使用客户端 APIs 还是资源 APIs。客户端 API 提供方法到 API 操作的一对一映射。资源 api 提供了一个类似于 V1 SDK 的面向对象的接口。您似乎在寻找后一个界面。
已定义 actions/methods 的资源接口 return 个对象,例如 Aws::EC2::Instance#terminate
.
ec2 = Aws::EC2::Resource.new
ec2.instances.each do |instance|
puts instance.id
end
或者,您可以使用客户端 API。客户端 return 具有相似属性但没有其他属性的纯数据对象 actions/methods。
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