Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Grundkonzepte
Das AWS Durable Execution SDK ist die Grundlage für die Erstellung dauerhafter Funktionen und bietet die Grundelemente, die Sie benötigen, um den Fortschritt zu überprüfen, Wiederholungsversuche zu verarbeiten und den Ausführungsablauf zu verwalten. Das SDK ist für JavaScript/TypeScript Python und Java verfügbar. Eine vollständige SDK-Dokumentation, einschließlich API-Referenz, Schnellstart-Tutorials und sprachspezifischen Anleitungen, finden Sie im AWS Durable Execution SDK Developer Guide.
Dauerhafte Ausführung
Eine dauerhafte Ausführung stellt den gesamten Lebenszyklus einer dauerhaften Lambda-Funktion dar und verwendet einen Checkpoint- und Replay-Mechanismus, um den Fortschritt der Geschäftslogik zu verfolgen, die Ausführung zu unterbrechen und nach Ausfällen wiederherzustellen. Wenn Funktionen nach einer Unterbrechung oder Unterbrechung wieder aufgenommen werden, werden zuvor abgeschlossene Checkpoints erneut abgespielt und die Ausführung der Funktion wird fortgesetzt.
Der Lebenszyklus kann mehrere Aufrufe einer Lambda-Funktion beinhalten, um die Ausführung abzuschließen, insbesondere nach Unterbrechungen oder nach einer Wiederherstellung nach einem Ausfall. Dieser Ansatz ermöglicht es, dass Ihre Funktion über längere Zeiträume (bis zu einem Jahr) ausgeführt werden kann und gleichzeitig trotz Unterbrechungen ein zuverlässiger Fortschritt gewährleistet wird.
Wie funktioniert Replay
Lambda führt ein laufendes Protokoll aller dauerhaften Operationen (Schritte, Wartezeiten und andere Operationen), während Ihre Funktion ausgeführt wird. Wenn Ihre Funktion angehalten werden muss oder auf eine Unterbrechung stößt, speichert Lambda dieses Checkpoint-Log und stoppt die Ausführung. Wenn es Zeit ist, fortzufahren, ruft Lambda Ihre Funktion erneut von Anfang an auf und spielt das Checkpoint-Protokoll ab, wobei abgeschlossene Operationen durch gespeicherte Werte ersetzt werden. Das bedeutet, dass Ihr Code erneut ausgeführt wird, aber zuvor abgeschlossene Schritte werden nicht erneut ausgeführt. Ihre gespeicherten Ergebnisse werden stattdessen verwendet.
Dieser Wiedergabemechanismus ist für das Verständnis langlebiger Funktionen von grundlegender Bedeutung. Ihr Code muss während der Wiedergabe deterministisch sein, was bedeutet, dass er bei denselben Eingaben dieselben Ergebnisse liefert. Vermeiden Sie Operationen mit Nebeneffekten (wie das Generieren von Zufallszahlen oder das Abrufen der aktuellen Uhrzeit) außerhalb von Schritten, da diese bei der Wiedergabe unterschiedliche Werte erzeugen und zu nicht deterministischem Verhalten führen können.
DurableContext
DurableContextist das Kontextobjekt, das Ihre dauerhafte Funktion empfängt. Es bietet Methoden für dauerhafte Operationen wie Steps und Waits, die Checkpoints erstellen und den Ausführungsablauf verwalten.
Ihre dauerhafte Funktion erhält DurableContext anstelle des Standard-Lambda-Kontextes einen:
Dadurch DurableContext hat Ihre Funktion Zugriff auf dauerhafte Operationen, die den Fortschritt überprüfen und die Arbeit koordinieren:
In den einzelnen Schritten wird die Geschäftslogik mit integrierten Wiederholungsversuchen und automatischem Checkpoint ausgeführt. Jeder Schritt speichert sein Ergebnis, sodass Ihre Funktion nach einer Unterbrechung mit dem letzten abgeschlossenen Schritt fortgesetzt werden kann.
Wartezeiten sind geplante Pausen, in denen Ihre Funktion nicht mehr ausgeführt wird und der Ladevorgang beendet wird, bis es Zeit ist, fortzufahren. Verwenden Sie sie für Zeiträume, externe Rückrufe oder Abfragen nach einer Erkrankung.
Invoke ruft andere Lambda-Funktionen auf und überprüft das Ergebnis. Die aufgerufene Funktion kann eine Standardfunktion oder eine dauerhafte Funktion sein. Cross-account Aufrufe werden nicht unterstützt.
Die vollständige Sprachreferenz zu allen verfügbaren dauerhaften Vorgängen finden Sie unter SDK-Referenz im AWS Durable Execution SDK Developer Guide.
Konfiguration dauerhafter Funktionen
Dauerhafte Funktionen verfügen über spezifische Konfigurationseinstellungen, die das Ausführungsverhalten und die Datenspeicherung steuern. Diese Einstellungen unterscheiden sich von der standardmäßigen Lambda-Funktionskonfiguration und gelten für den gesamten Durable Execution-Lebenszyklus.
Das DurableConfigObjekt definiert die Konfiguration für dauerhafte Funktionen:
{ "ExecutionTimeout": Integer, "RetentionPeriodInDays": Integer }
Ausführungstimeout
Das Ausführungs-Timeout steuert, wie lange eine dauerhafte Ausführung von Anfang bis Ende laufen kann. Dies unterscheidet sich vom Lambda-Funktions-Timeout, das steuert, wie lange ein einzelner Funktionsaufruf ausgeführt werden kann.
Eine dauerhafte Ausführung kann mehrere Lambda-Funktionsaufrufen umfassen, während sie Checkpoints, Wartezeiten und Wiederholungen durchläuft. Das Ausführungs-Timeout gilt für die gesamte verstrichene Zeit der dauerhaften Ausführung, nicht für einzelne Funktionsaufrufen.
Den Unterschied verstehen
Das Timeout der Lambda-Funktion (maximal 15 Minuten) begrenzt jeden einzelnen Aufruf Ihrer Funktion. Das dauerhafte Ausführungstimeout (maximal 1 Jahr) begrenzt die Gesamtzeit vom Start der Ausführung bis zum Abschluss, zum Fehlschlagen oder zum Timeout. Während dieses Zeitraums kann Ihre Funktion mehrmals aufgerufen werden, da sie Schritte verarbeitet, wartet und nach Ausfällen wieder hergestellt wird.
Wenn Sie beispielsweise ein dauerhaftes Ausführungstimeout von 24 Stunden und ein Lambda-Funktions-Timeout von 5 Minuten festlegen:
Jeder Funktionsaufruf muss innerhalb von 5 Minuten abgeschlossen sein
Die gesamte dauerhafte Ausführung kann bis zu 24 Stunden dauern
Ihre Funktion kann während dieser 24 Stunden viele Male aufgerufen werden
Wartevorgänge werden nicht auf das Lambda-Funktions-Timeout angerechnet, sondern auf das Ausführungs-Timeout.
Sie können das Ausführungstimeout konfigurieren, wenn Sie eine dauerhafte Funktion mit der Lambda-Konsole erstellen, AWS CLI, oder. AWS SAM Wählen Sie in der Lambda-Konsole Ihre Funktion und dann Konfiguration, Dauerhafte Ausführung aus. Legen Sie den Wert für das Ausführungs-Timeout in Sekunden fest (Standard: 86400 Sekunden/24 Stunden, Minimum: 60 Sekunden, Maximum: 31536000 Sekunden/1 Jahr).
Anmerkung
Das Ausführungs-Timeout und das Lambda-Funktions-Timeout sind unterschiedliche Einstellungen. Das Timeout der Lambda-Funktion steuert, wie lange jeder einzelne Aufruf ausgeführt werden kann (maximal 15 Minuten). Das Ausführungs-Timeout steuert die gesamte verstrichene Zeit für die gesamte dauerhafte Ausführung (maximal 1 Jahr).
Aufbewahrungszeitraum
Die Aufbewahrungsfrist steuert, wie lange Lambda den Ausführungsverlauf und die Checkpoint-Daten nach Abschluss einer dauerhaften Ausführung aufbewahrt. Zu diesen Daten gehören die Schrittergebnisse, der Ausführungsstatus und das vollständige Checkpoint-Protokoll.
Nach Ablauf der Aufbewahrungsfrist löscht Lambda den Ausführungsverlauf und die Checkpoint-Daten. Sie können keine Ausführungsdetails mehr abrufen oder die Ausführung erneut abspielen. Die Aufbewahrungsfrist beginnt, wenn die Ausführung einen Terminalstatus erreicht hat (SUCCEED, FAILED, STOPPED oder TIMED_OUT).
Sie können den Aufbewahrungszeitraum konfigurieren, wenn Sie eine dauerhafte Funktion mit der Lambda-Konsole erstellen, AWS CLI, oder AWS SAM. Wählen Sie in der Lambda-Konsole Ihre Funktion und dann Konfiguration, Dauerhafte Ausführung aus. Legen Sie den Wert für den Aufbewahrungszeitraum in Tagen fest (Standard: 14 Tage, Minimum: 1 Tag, Maximum: 90 Tage).
Wählen Sie einen Aufbewahrungszeitraum, der auf Ihren Compliance-Anforderungen, Debugging-Anforderungen und Kostenerwägungen basiert. Längere Aufbewahrungszeiträume bieten mehr Zeit für Debugging und Audits, erhöhen jedoch die Speicherkosten.
Weitere Informationen finden Sie auch unter
AWS Durable Execution SDK Developer Guide — Vollständige SDK-Referenz, Schnellstart-Tutorials, Test-Framework und sprachspezifische Anleitungen.
Dauerhafte Funktionen oder Step Functions — Vergleichen Sie langlebige Funktionen mit Step Functions, um herauszufinden, wann jeder Ansatz am effektivsten ist.