2009-03-12 39 views

cevap

2

Bildiğim kadarıyla, ec2 sonlandırma örnekleri komutu için 'all' anahtarı yok. Yani muhtemelen senaryosunu yazmalısın. O kadar zor olmayacak. Sadece örneklerin virgülle ayrılmış bir listesini oluşturmanız gerekir.

import sys 
import time 
from boto.ec2.connection import EC2Connection 

def main(): 
    conn = EC2Connection('', '') 
    instances = conn.get_all_instances() 
    print instances 
    for reserv in instances: 
     for inst in reserv.instances: 
      if inst.state == u'running': 
       print "Terminating instance %s" % inst 
       inst.stop() 

if __name__ == "__main__": 
    main() 

O boto kitaplığını kullanır:

Bu

kullanıyorum bir piton komut dosyasıdır. Bu belirli bir görev için gerekli değildir (basit bir kabuk betiği yeterli olacaktır), ancak birçok durumda kullanışlı olabilir.

Son olarak Firefox için Elasticfox eklentisinin farkında mısınız? Bu, EC2'ye erişmenin en kolay yoludur.

+0

() – rcell

5

AWS Console ve Elasticfox bunu oldukça kolaylaştırır.

bir komut satırı çözüm EC2 API araçlarını kullanarak tek çizgide elde edilebilir

:

for i in `ec2din | grep running | cut -f2`; do ec2kill $i; done 
4

Bu eski bir sorudur ama AWS CLI için bir çözüm paylaşmak istiyorum düşünce:

$ aws ec2 terminate-instances --instance-ids $(aws ec2 describe-instances --filters "Name=instance-state-name,Values=pending,running,stopped,stopping" --query "Reservations[].Instances[].[InstanceId]" --output text | tr '\n' ' ') 
0

Tamamı aşk için. Burada düzenli ifadeler ve kullanarak, bir programcının repertuar ile daha uyumlu olma, başka bir yol aws cli:

Sana connection.terminate_instances kullanabilirsiniz şimdi inanıyoruz
aws ec2 terminate-instances 
     --instance-ids 
     $(
      aws ec2 describe-instances 
      | grep InstanceId 
      | awk {'print $2'} 
      | sed 's/[",]//g' 
     ) 
İlgili konular