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 № 1Voici 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!"