2015-04-22 21 views
1

我正在寫一個概念證明有關使用boto創建,連接,分離和破壞EC2 EBS卷:寶途EC2創建磁盤需要要創建一個很長一段時間 - Python的

import time 
import ec2.boto 

conn = boto.ec2.connect_to_region("us-west-2", 
      aws_access_key_id=AWS_ACCESS_KEY, 
      aws_secret_access_key=AWS_SECRET_KEY) 

reservation = conn.run_instances(
       'ami-1fa78f2f', 
       instance_type='m3.medium') 

instance = reservation.instances[0] 
instance.add_tag('Name', 'volume_test') 


while instance.state != 'running': 
     time.sleep(10) 
     instance.update() # Updates Instance metadata 
     print 'Instance state: ', instance.state 

print "attempting to attach volume" 
vol = conn.create_volume(10, instance.placement) 
while vol.status != 'available': 
     print 'Vol state: ', vol.status 
     time.sleep(20) 

vol.attach(instance.id, '/dev/sdh') 

這是一個10GBv量,但它永遠不會出來的「創造」的狀態:

# python test.py 
Instance state: pending 
Instance state: pending 
Instance state: running 
attempting to attach volume 
Vol state: creating 
Vol state: creating 
Vol state: creating 
Vol state: creating 
Vol state: creating 
Vol state: creating 
Vol state: creating 
Vol state: creating 
Vol state: creating 

我做得不對,或者是EC2太慢創建卷?

回答

2

您沒有更新循環內的體積。嘗試這個。

print "attempting to attach volume" 
vol = conn.create_volume(10, instance.placement) 
while vol.status != 'available': 
    print 'Vol state: ', vol.status 
    time.sleep(20) 
    vol.update() 
+0

tumb me!謝謝先生! – cybertextron

+0

對於來自Google的用戶:'vol.status'現在是'vol.state','vol.update'現在是'vol.reload'。 – joe

相關問題