2017-07-27 2 views
0

Wenn ich alle Routing-Tabellen greifen mit:Routetable: Keine in AWS Boto get_all_route_tables()

conn=boto.vpc.connect_to_region("us-east-1") c=conn.get_all_route_tables()

Ausgabe mehrere Listenelemente von RouteTable:None neben Routentabelle ids enthält erwarte ich:

[RouteTable:rtb-123xyzz, RouteTable:rtb-456abcc, RouteTable:None, RouteTable:None, RouteTable:None,

Kann jemand sagen, warum diese keine Elemente in der Ausgabe enthalten sind? Mit ihnen drin kann ich nicht iterieren, um mehr Attribut/Wert-Informationen zu erhalten.

Danke,

Antwort

1

nicht sicher, warum einige Routentabelle ids None sind. Es könnte sein, dass die Erstellung der Routentabelle abgebrochen wurde. Aber durch sie iterieren ist Ihr Problem, können Sie tun:

  • diese Route löschen Tabellen
  • Ignorieren Sie diese Routentabellen

Es ist leicht, sie in Python zu ignorieren:

for rt in c: 
    if rt.id # Valid route table id 
    # Do your stuff 

Oder filtern Sie einfach die None Routentabellen:

route_tables = [rt for rt in c if rt.id] 
+0

Danke, das funktioniert. Ich habe jetzt Routen-IDs und Internet-Gateway-IDs. Wie soll ich Routentabellen beschreiben, damit ich prüfen kann, ob sie in ihnen enthalten sind? Schließlich werde ich eine Liste von öffentlichen Subnetzen erstellen, indem ich die Routentabellenzuordnungen überprüfe. Versuchen, die richtige Syntax zu finden. Vielen Dank. – BBDG

+0

Es ist völlig anders als die Frage, die Sie anfangs gestellt haben. Veröffentlichen Sie es als eine andere Frage, nachdem Sie die Antwort akzeptiert haben. – helloV

Verwandte Themen