/ / Comment appeler la sortie d'un script à l'intérieur du script en utilisant python? - python-2.7, amazon-ec2, sortie, boto, amazon-sqs

Comment appeler la sortie d'un script à l'intérieur du script en utilisant python? - python-2.7, amazon-ec2, sortie, boto, amazon-sqs

Script de test:

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()

Cela fonctionne, mais ce n'est que pour une variable. J'aurais besoin de la sortie entière du script qui est plus grande dans l'image avec des instructions conditionnelles pour atteindre le résultat que je veux. J'obtiens le résultat que je souhaite, mais je n'arrive pas à trouver un moyen de vider le résultat du script dans le même script et le contenu de la variable sera envoyé par e-mail. Ce doit être un seul script. J'apprécie vraiment votre aide pour résoudre ce problème.

Réponses:

0 pour la réponse № 1

Voici un exemple de script qui parcourt les régions et les instances, puis termine toute instance dont la balise est temp.

Il ne fait pas directement ce que vous avez demandé, mais je le fournis comme un exemple de la façon dont vous pouvez choisir d'accéder aux attributs d'instance pour contrôler la logique de votre programme.

#!/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!"