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

How to take snapshot of Aws EBS volumes using Ruby skd v2?

我是 AWS 的新手,正在努力学习。我正在尝试使用 Ruby aws-sdk v2 拍摄 EBS 卷的快照。我找到了使用 CLIaws-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}")

(注意我在hash中保存了device_namevolume_id,这只是一小段代码)。 ec2.volumes[volume_id]undefined method 'volumes' for #<Aws::EC2::Client>.

时出现错误

我认为这种方法适用于aws-sdk v1aws-sdk v2 我们有类似的方法吗?请指引我正确的方向。

提前致谢。

您可以使用适用于 Ruby 的 AWS SDK 版本 2 通过两种方式创建快照。使用资源接口(这将是最像 v1 的):

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

或者你可以使用客户端class:

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

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