2016-05-04 12 views

答えて

0

awscliを正しくインストールして設定してください。 MacOSの場合はbrewのバージョンをお勧めします。インストール後

は、お客様自身の責任でそれを使用するとにかく私のために完璧に動作しますが

aws configure

を実行することを忘れないでください。

import json, subprocess 

def remove_unused_snaps(region): 
    line = 'aws ec2 describe-images --region {} --owners self'.format(region) 
    p = subprocess.Popen(line.split(), 
         stdout=subprocess.PIPE, stderr=subprocess.PIPE) 
    out, err = p.communicate() 
    obj = json.loads(out.decode("utf-8")) 

    snaps_used = set(i['BlockDeviceMappings'][0]['Ebs']['SnapshotId'] for i in obj['Images']) 

    line = 'aws ec2 describe-snapshots --region {} --owner-ids self'.format(region) 
    p = subprocess.Popen(line.split(), 
         stdout=subprocess.PIPE, stderr=subprocess.PIPE) 
    out, err = p.communicate() 
    obj = json.loads(out.decode("utf-8")) 

    snaps_old = set(i['SnapshotId'] for i in obj['Snapshots']) 

    line = 'aws ec2 delete-snapshot --region {} --snapshot-id'.format(region) 
    for snap in list(snaps_old - snaps_used): 
     p = subprocess.Popen(line.split() + [snap], 
          stdout=subprocess.PIPE, stderr=subprocess.PIPE) 
     out, err = p.communicate() 
     print(snap, out, err) 

はその後、単純にそれを実行します。remove_unused_snaps('us-west-2')

関連する問題