我是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_id
说ec2.volumes[volume_id]
时收到错误。
我认为此方法适用于undefined method 'volumes' for #<Aws::EC2::Client>
。我们对aws-sdk v1
有类似的方法吗?请指导我正确的方向。
提前致谢。
答案 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中的一些模式已更改。