Ich verwende Boto3, um alle Snapshots aufzulisten. Aber wenn ich die Funktion ec2.snapshots.all() verwende, und versuche dann mit einem for zu iterieren, funktioniert es nicht.Funktion ec2.snapshots.all nicht iterieren boto3 Lambda
from __future__ import print_function from boto3 import resource REGION = "us-east-1" def lambda_handler(event, context): ec2 = resource("ec2", region_name=REGION) all_snapshots = ec2.snapshots.all() for snapshot in all_snapshots: print("SnapshotIteration")
Das Ergebnis ist die nächste:
{ "errorMessage": "2017-03-07T00:08:56.583Z 3faed105-02ca-11e7-b637-cfb921e4e3cc Task timed out after 3.00 seconds" }
Wie viele Schnappschüsse haben Sie? Ich denke, es ist viel zu viel. Was versuchst du zu machen? – helloV
Ich stimme @helloV zu - wie lange dauert es, um "aws ec2 describe-snapshots" in der Befehlszeile für Sie auszuführen? Wir haben ziemlich viele und es hat ungefähr 15 Sekunden gedauert, bis das wieder kam. Warum ist Ihr Timeout nur 3 Sekunden? – stdunbar
Ich wusste nicht, dass die Funktion alle öffentlichen Snapshots zurückgegeben hat. Ich hatte getestet, indem ich das Timeout auf 30 Sekunden erhöhte, aber offensichtlich nicht genug. Ich habe einen Filter angewendet, der meine Besitzer-ID angibt, wie von John Rotenstein angegeben, und jetzt funktioniert es. –