Я использую пользовательские теги для своих экземпляров AWS. Я пытаюсь перечислить все экземпляры (запущенные и остановленные) в CSV-файле. Не будучи программистом, я искал и копировал/вставлял коды и шел со сценарием, который работает хорошо. Но я заметил, что если один тег отсутствует, скрипт выдает ошибку и останавливается прямо там. Если тег создан, но пуст, сценарий печатает пустое пространство, но если тег вообще не создается, сценарий просто останавливается. Например, если тег Владелец отсутствует, то он выдает сообщение об ошибке KeyError: 'Owner' и останавливается там. Мой скрипт вставлен ниже. Может кто-нибудь сообщить мне, какие изменения мне нужно сделать, чтобы, если тег не существует, скрипт выдает N/A вместо остановки.Boto выпускает экземпляры AWS без тегов
#!/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()
ТИА sbasnet
Я просто проверил его и он работает ... Спасибо так много. – sbasnet
@sbasnet рад, что это сработало. Пожалуйста, отметьте ответ в качестве решения, если он это сделал (и повысьте :)) – varesa