2015-09-21 7 views
0

Test Script:Как вызвать вывод скрипта внутри скрипта с помощью python?

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

Так скажите мне, зачем вам нужно вывести 'instance' в файл, вы отлично справляетесь с остальным скриптом с информацией из него непосредственно в вашем скрипте. Во-вторых, в 'get_all_instances' есть опция' filter', чтобы сузить результат, чтобы вы могли сфокусировать экземпляры, над которыми вам нужно работать. – BMW

ответ

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!' 
+0

Спасибо, Джон. Это сработало. – beginnercoder

Смежные вопросы