テストスクリプト:
import boto.ec2
import subprocess
region = "us-east-1"
conec2 = boto.ec2.connect_to_region(region)
reserve = conec2.get_all_instances()
instance = instance = [a for r in reserve for a in r.instances]
output=open("output1.txt","w+")
for ins in instance:
output.write(str(ins)+"n")
output.close()
これは機能しますが、これは1つの変数にのみ当てはまります。 目的の結果を達成するには、条件付きステートメントを使用してより大きなスクリプトの出力全体が必要になります。希望する結果が得られますが、同じスクリプトでスクリプトの結果をダンプする方法を見つけることができず、変数の内容が電子メールとして送信されます。これは1つのスクリプトである必要があります。この問題の解決にご協力いただきありがとうございます。
回答:
回答№1は0これは、リージョンとインスタンスを反復処理し、次のタグを持つインスタンスを終了するスクリプトの例です temp
.
これは、「あなたが要求したことを直接行うものではありません」が、プログラムロジックを制御するためにインスタンス属性にアクセスすることを選択する方法の例として提供しています。
#!/usr/bin/env python
import boto.ec2
for region in boto.ec2.regions():
conn = boto.ec2.connect_to_region(region.name)
reservations = conn.get_all_instances()
for r in reservations:
for i in r.instances:
if i.state == "running":
print region.name, i.id, i.tags, i.state
if "temp" in i.tags.keys():
conn.terminate_instances([i.id])
print "Terminated!"