如何使用Ruby skd v2拍摄Aws EBS卷的快照?

时间:2015-03-10 03:59:23

标签: ruby amazon-web-services amazon-ec2

我是AWS的新手并且正在努力学习。我正在尝试使用Ruby aws-sdk v2拍摄EBS卷的快照。我找到了使用CLI并使用aws-sdk v1拍摄快照的命令。但我无法找到有关使用aws-sdk v2拍摄快照的更多信息。

这就是我尝试拍摄快照的方式。

ec2 = Aws::EC2::Client.new(region: config['region'], credentials: credentials)

(注意我有其他方法来读取配置文件和加载凭据)

然后我正在尝试拍摄快照

ec2.snapshots.create(:volume => ec2.volumes[volume_id], :description => "Snapshot of device: #{device_name} volume: #{volume_id}")

(请注意,我已将[{1}}和device_name保存在哈希中,这只是一段代码)。我volume_idec2.volumes[volume_id]时收到错误。

我认为此方法适用于undefined method 'volumes' for #<Aws::EC2::Client>。我们对aws-sdk v1有类似的方法吗?请指导我正确的方向。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以使用适用于Ruby的AWS开发工具包的第2版以两种方式创建快照。使用资源界面(这将是最像v1):

ec2 = Aws::EC2::Resource.new
ec2.volume('volume-id').create_snapshot(description: 'description')

或者您可以使用客户端类:

ec2 = Aws::EC2::Client.new
ec2.create_snapshot(volume_id: 'volume-id', description: 'description')

请注意,v2 SDK不向后兼容,因此v1中的一些模式已更改。