测试脚本:
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()
这有效,但这仅适用于一个变量。我需要脚本的整个输出,它在条件语句中更大,以实现我想要的结果。我确实得到了我想要的结果但是我找不到在同一个脚本中转储脚本结果的方法,并且变量的内容将作为电子邮件发送。这必须只是一个脚本。我非常感谢你帮助解决这个问题。
答案 0 :(得分: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!'