Chr*_*her 4 boto amazon-web-services
我正在尝试使用Python的'boto'模块将卷从一个实例复制到另一个实例.该过程的一部分是识别附加到实例的卷.有几种方法可以解决这个问题.例如,我可以使用列表理解:
from boto.ec2 import connect_to_region
conn = connect_to_region('us-east-1')
all_volumes = conn.get_all_volumes()
instance_volumes = [v for v in all_volumes if v.attach_data.instance_id = "<instanceID>"]
Run Code Online (Sandbox Code Playgroud)
这是有效的,并且适用于我的目的.尽管如此,我很好奇,如果有使用方式get_all_volumes()的内置过滤,以获得相同的结果.例如,如果我在搜索"Name"标签与某个模式匹配的实例,我可以这样做:
filters = {'tag:Name': '<name>'}
reservations = self.conn.get_all_instances(filters=filters)
instances = [i for r in reservations for i in r.instances]
Run Code Online (Sandbox Code Playgroud)
get_all_volumes()有一个类似的过滤器参数,但我不能让它工作boto.ec2.volume.Volume.attach_data.instance_id.我是否遗漏了一些明显的东西,或者是因为不可能的卷而被instance_id过滤?
gar*_*aat 11
是的,您可以使用服务器端过滤器将DescribeVolumes的结果限制为仅附加到特定实例ID的卷.
from boto.ec2 import connect_to_region
conn = connect_to_region('us-east-1')
volumes = conn.get_all_volumes(filters={'attachment.instance-id': 'i-11111111'})
Run Code Online (Sandbox Code Playgroud)
将卷限制为附加到实例的卷i-11111111.您还可以提供实例ID列表作为字典中的值.
| 归档时间: |
|
| 查看次数: |
5066 次 |
| 最近记录: |