4
我試圖使用Python的'boto'模塊將卷從一個實例複製到另一個實例。該過程的一部分是識別附加到實例的卷。有幾種方法可以解決這個問題。例如,我可以使用列表理解:我可以通過boto中的instance_id過濾卷嗎?
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>"]
這個工作,並且對我的目的工作足夠好。同樣,我很好奇,如果有一種方法可以使用get_all_volumes()
的built-in filtering來獲得相同的結果。例如,如果我正在尋找他的「名稱」標籤匹配某種模式的情況下,我可以這樣做:
filters = {'tag:Name': '<name>'}
reservations = self.conn.get_all_instances(filters=filters)
instances = [i for r in reservations for i in r.instances]
get_all_volumes()
也有類似的過濾參數,但我不能讓它在boto.ec2.volume.Volume.attach_data.instance_id
工作。我是否錯過了某些顯而易見的內容,或者是在不可能的捲上通過instance_id過濾?