AWS boto Erhalten Sie Schnappschüsse in der Zeitspanne

Ich verwende AWS und ziehe Schnappschüsse mit boto ("Die Python-Schnittstelle zu Amazon Web Services"). Ich ziehe alle Schnappschüsse mit conn.get_all_snapshots() , aber ich möchte nur die notwendigen Daten abrufen. Ich benutze einen Kalender, um die Schnappschüsse zu sehen, also wäre es sehr hilfreich, wenn ich nur die Schnappschüsse innerhalb des aktuellen Monats ziehen könnte, den ich ansehe.

Gibt es eine Beschränkung (vielleicht ein Filter) kann ich auf die conn.get_all_snapshots() um nur die Schnappschüsse innerhalb des Monats abzurufen?

Hier sind boto docs wenn nötig: http://boto.readthedocs.org/de/latest/ref/ec2.html

2 Solutions collect form web for “AWS boto Erhalten Sie Schnappschüsse in der Zeitspanne”

Ich bin mir nicht bewusst. Die EC2-API ermöglicht es Ihnen, Ergebnisse zu filtern, die auf Snapshot-IDs oder nach verschiedenen Filtern wie status oder progress basieren. Es gibt sogar einen Filter für die create-time aber leider gibt es keine Möglichkeit, eine Reihe von Zeiten zu spezifizieren und gibt es alles dazwischen zurück. Und es gibt keine Möglichkeit, < oder > Operatoren in der Filterabfrage zu verwenden.

Verwenden Sie das start_time Feld des Snapshots (das ist ein String, also muss es geparst werden):

 import datetime # Fetch all snaps snaps = conn.get_all_snapshots() # Get UTC of 30-days ago cutoff = datetime.datetime.utcnow() - datetime.timedelta(days=30) # datetime parsing format "2015-09-07T20:12:08.000Z" DATEFORMAT = '%Y-%m-%dT%H:%M:%S.%fZ' # filter older old_snaps = [s for s in snaps \ if datetime.datetime.strptime(s.start_time, DATEFORMAT) < cutoff] # filter newer new_snaps = [s for s in snaps \ if datetime.datetime.strptime(s.start_time, DATEFORMAT) >= cutoff] 

old_snaps enthält die vor diesem Monat und new_snaps enthält die von diesem Monat. (Ich habe das Gefühl, dass du die alten Snaps löschen willst, deshalb habe ich die old_snaps Linie aufgenommen.)

Ich benutze datetime.strptime () oben, weil es eingebaut ist, aber dateutil ist robuster, wenn Sie es installiert haben. (Details dazu beachten : https://stackoverflow.com/a/3908349/1293152 )

Python ist die beste Programmiersprache der Welt.