1

Ich erstelle eine Reihe von EBS-Snapshots als Teil von AWS Lambda. Ich muss Ereignisse erfassen, wenn diese Snapshots abgeschlossen sind, damit ich basierend auf diesen eine ec2-Instanz erstellen kann.Wie AWS Lambda ausgelöst wird, wenn ein EBS-Snapshot abgeschlossen wird

Ich könnte snapshot waiter verwenden, aber diese Umfragen und manchmal Snapshot-Erstellung kann lange dauern. Ich möchte nicht, dass Lambda eine Weile weiterläuft und die maximale Zeit für Lambda scheint fünf Minuten zu betragen. Ich schaute auf CloudWatch und AWS Config, um zu sehen, ob ich Snapshot-Ereignisse erfassen kann, hatte aber kein Glück.

Antwort

1

Sie sind richtig - Es gibt kein Benachrichtigungsereignis, das die Fertigstellung eines EBS-Snapshot anzeigt. Stattdessen müssen Sie den Status überprüfen, bis sich der Status zu completed ändert.

Sie haben auch richtig, dass AWS Lambda-Funktionen für eine maximal 5 Minuten laufen können und eine Lambda-Funktion, die auf einen externen Prozess wartet, keine gute Architektur ist.

Stattdessen könnten Sie Aufbrechens der Architektur:

  • Haben Sie Ihren bestehenden Prozess der EBS Snapshot auslösen (n) und dann
  • vereinbaren, eine Nachricht in eine SQS-Warteschlange drücken Lambda-Funktion (zB alle 5 Minuten) um die SQS-Queue zu prüfen. Wenn eine Nachricht vorhanden ist:
    • Abrufen von Informationen über die Instanz und Snapshot (n) aus der Nachricht
    • Überprüfen Sie den Status des Schnappschusses (n)
    • Wenn der Status completed, führen Sie den nächsten Schritt im Prozess

der Nachteil davon ist, dass die geplante Lambda-Funktion selbst auslösen, wenn es keine Nachrichten in der Warteschlange sind. Die Lambda-Funktion wird sehr schnell beendet (Kosten: 100ms).

Die Alternative ist Führen Sie ein cron Skript auf einer Amazon EC2-Instanz (oder auf jedem Computer mit dem Internet verbunden). Eine t2.nano Instanz ist etwa 15,6 c pro Tag, was teurer sein kann als eine geplante Lambda-Funktion. Wenn Sie bereits eine Instanz verwenden, entstehen keine zusätzlichen Kosten.

+0

Dank, den SQS-Ansatz will ich ausprobieren! – user1801879

Verwandte Themen