Ich habe ein kleines Skript zurückzukehren, wie folgt:Wie die ganze Liste von einer Python-Funktion
import boto3
ACCESS_KEY= "XXXXXXXXXXXXX"
SECRET_KEY= "XXXXXXXXXXXX"
regions = ['us-east-1','us-west-1','us-west-2','eu-west-1','sa-east-1','ap-southeast-1','ap-southeast-2','ap-northeast-1']
for region in regions:
client = boto3.client('ec2',aws_access_key_id=ACCESS_KEY,aws_secret_access_key=SECRET_KEY,region_name=region,)
addresses_dict = client.describe_addresses()
for eip_dict in addresses_dict['Addresses']:
print eip_dict['PublicIp']
Dieser Code funktioniert gut und druckt die Liste aller EIP aus allen Region, jetzt versuche ich das zu verwenden, obiger Code in meinen anderen Skriptfunktionen wie mit:
def gather_public_ip():
ACCESS_KEY = config.get('aws','access_key')
SECRET_KEY = config.get('aws','secret_key')
regions = ['us-east-1','us-west-1','us-west-2','eu-west-1','sa-east-1','ap-southeast-1','ap-southeast-2','ap-northeast-1']
all_EIP = []
for region in regions:
client = boto3.client('ec2',aws_access_key_id=ACCESS_KEY,aws_secret_access_key=SECRET_KEY,region_name=region,)
addresses_dict = client.describe_addresses()
for eip_dict in addresses_dict['Addresses']:
print eip_dict['PublicIp']
all_EIP.append(eip_dict['PublicIp'])
return all_EIP
Aber das bricht nach dem 1. Iteration nur (es nur druckt einen IP) und kehrt nicht die ganze Liste an Anrufer, nenne ich die obige Funktion von __main__
wie folgt:
net_range = gather_public_ip()
r = s.run(net_range)
s.save() # save
Grundsätzlich Ich möchte run()
die Liste der zurückgegebenen IP-Adressen zu übergeben. Kann mir jemand helfen ?
ahh, dumm von mir, und nur noch eine Frage, es zu verfolgen, wie Sie ich bin Kommissionierung bis die Anmeldeinformationen aus einer Konfigurationsdatei finden kann, wird es auch für 'Anbaugebiete arbeiten, – PythonFreak
Die' ConfigParser' Modul hat keine eingebaute Möglichkeit, die Eingabe/Ausgabe von Listen zu handhaben. Sie müssen Ihre eigenen rollen, aber das ist einfach genug. Zum Beispiel mit einem Trennzeichen zwischen Regionen und dann nach dem "Get" -Teilen. – renemilk
können Sie mir sagen, wie bekomme ich die IPs, die gerade eine laufende Instanz haben ?? – PythonFreak