【发布时间】:2015-08-25 15:22:54
【问题描述】:
我为我的 AWS 实例使用自定义标签。我正在尝试在 CSV 文件中列出所有实例(运行和停止)。不是程序员,我搜索并复制/粘贴了代码,并附带了一个运行良好的脚本。但我注意到,如果缺少一个标签,则脚本会引发错误并停在那里。如果标签已创建但为空,则脚本将打印一个空格,但如果根本没有创建标签,则脚本将停止。例如,如果标签 Owner 丢失,则会抛出错误 KeyError: 'Owner' 并停在那里。我的脚本粘贴在下面。有人可以让我知道我需要进行哪些更改,以便如果标签不存在,脚本会打印出 N/A 而不是停止。
#!/usr/bin/env python
import boto.ec2
from boto.ec2 import EC2Connection
csv_file = open('/home/sbasnet/Scripts/Instances/instances_east.csv','w+')
def process_instance_list(connection):
map(build_instance_list,connection.get_all_instances())
def build_instance_list(reservation):
map(write_instances,reservation.instances)
def write_instances(instance):
if (instance.platform == 'windows'):
platform = 'Windows'
else:
platform = 'Linux'
csv_file.write("%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n"%(instance.id,instance.private_ip_address,instance.tags['Classification'],instance.tags['FQDN'],instance.tags['Owner'],instance.tags['RunType'],instance.instance_type,instance.subnet_id,instance.key_name,platform,instance.placement))
csv_file.flush()
if __name__=="__main__":
connection = EC2Connection(aws_access_key_id='ACCESS',aws_secret_access_key='SECRET')
process_instance_list(connection)
csv_file.close()
TIA sbasnet
【问题讨论】:
标签: python csv amazon-web-services amazon-ec2 boto