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 Das Durable Execution SDK ist die Grundlage für die Erstellung langlebiger Funktionen und bietet die Primitive, die Sie benötigen, um den Fortschritt zu überprüfen, Wiederholungsversuche zu verarbeiten und den Ausführungsablauf zu verwalten. Das SDK ist verfügbar für Node.js (JavaScript und TypeScript), Python, Java, Go und C# (.NET). Eine vollständige SDK-Dokumentation einschließlich API-Referenz, Schnellstart-Tutorials und sprachspezifischen Anleitungen finden Sie im AWS Durable Execution SDK — Entwicklerhandbuch.
Dauerhafte Ausführung
EIN dauerhafte Ausführung stellt den gesamten Lebenszyklus einer dauerhaften Lambda-Funktion dar und verwendet einen Checkpoint- und Wiedergabemechanismus, um den Fortschritt der Geschäftslogik zu verfolgen, die Ausführung zu unterbrechen und nach Ausfällen eine Wiederherstellung durchzuführen. Wenn Funktionen nach einer Unterbrechung oder Unterbrechung wieder aufgenommen werden, werden zuvor abgeschlossene Checkpoints erneut abgespielt und die Funktion setzt die Ausführung fort.
Der Lebenszyklus kann mehrere Aufrufe einer Lambda-Funktion umfassen, um die Ausführung abzuschließen, insbesondere nach Unterbrechungen oder einer Wiederherstellung nach einem Ausfall. Mit diesem Ansatz kann Ihre Funktion über einen längeren Zeitraum (bis zu einem Jahr) ausgeführt werden, während trotz Unterbrechungen ein zuverlässiger Ablauf gewährleistet ist.
Wie funktioniert die Wiederholung
Lambda führt ein laufendes Protokoll aller dauerhaften Operationen (Schritte, Wartezeiten und andere Operationen), während Ihre Funktion ausgeführt wird. Wenn Ihre Funktion unterbrochen werden muss oder auf eine Unterbrechung stößt, speichert Lambda dieses Checkpoint-Log und stoppt die Ausführung. Wenn es Zeit ist, die Funktion fortzusetzen, ruft Lambda Ihre Funktion erneut von Anfang an auf und spielt das Checkpoint-Log erneut ab, wobei abgeschlossene Operationen durch gespeicherte Werte ersetzt werden. Das bedeutet, dass Ihr Code erneut ausgeführt wird, zuvor abgeschlossene Schritte jedoch nicht erneut ausgeführt werden. Ihre gespeicherten Ergebnisse werden stattdessen verwendet.
Dieser Wiedergabemechanismus ist grundlegend für das Verständnis dauerhafter Funktionen. Ihr Code muss während der Wiedergabe deterministisch sein, was bedeutet, dass er bei gleichen 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 beim Abspielen unterschiedliche Werte erzeugen und zu nicht deterministischem Verhalten führen können.
DurableContext
DurableContext ist das Kontextobjekt, das Ihre langlebige Funktion empfängt. Es bietet Methoden für dauerhafte Operationen wie Schritte und Wartezeiten, mit denen Checkpoints erstellt und der Ausführungsablauf verwaltet wird.
Ihre dauerhafte Funktion erhält eine DurableContext anstelle des Standard-Lambda-Kontexts:
Durch DurableContext, hat Ihre Funktion Zugriff auf dauerhafte Operationen, die den Fortschritt kontrollieren und die Arbeit koordinieren:
Schritte Führen Sie eine Geschäftslogik mit integrierten Wiederholungsversuchen und automatischem Checkpointing aus. Jeder Schritt speichert sein Ergebnis, sodass Ihre Funktion nach einer Unterbrechung ab dem letzten abgeschlossenen Schritt wieder aufgenommen wird.
Wartet sind geplante Pausen, in denen Ihre Funktion nicht mehr läuft und der Ladevorgang unterbrochen wird, bis es Zeit ist, fortzufahren. Verwenden Sie sie für Zeiträume, externe Rückrufe oder zum Abfragen einer Bedingung.
Aufrufen ruft andere Lambda-Funktionen auf, einschließlich langlebiger Funktionen, und überprüft das Ergebnis. Cross-account Aufrufe werden nicht unterstützt.
Die vollständige Sprachreferenz zu allen verfügbaren dauerhaften Operationen finden Sie unter SDK-Referenz in der AWS Durable Execution SDK-Entwicklerhandbuch.
Dauerhafte Funktionskonfiguration
Dauerhafte Funktionen fügen Konfigurationseinstellungen hinzu, die das Ausführungsverhalten und die Datenspeicherung steuern. Diese Einstellungen gelten zusätzlich zur vorhandenen Konfiguration der Funktion, wie z. B. Speicher und Timeout für die Funktion. Sie gelten für die gesamte dauerhafte Ausführung und nicht für einzelne Aufrufe.
Das DurableConfig Objekt definiert die Konfiguration für langlebige Funktionen:
{ "ExecutionTimeout": Integer, "RetentionPeriodInDays": Integer }
Ausführungstimeout
Das Timeout bei der Ausführung steuert, wie lange eine dauerhafte Ausführung von Anfang bis Ende ausgeführt werden kann. Dies unterscheidet sich vom Timeout der Lambda-Funktion, der steuert, wie lange ein einzelner Funktionsaufruf ausgeführt werden kann.
Eine dauerhafte Ausführung kann sich über mehrere Aufrufe der Lambda-Funktion erstrecken, während sie Checkpoints, Wartezeiten und Wiederholungen durchläuft. Das Ausführungs-Timeout bezieht sich auf die gesamte verstrichene Zeit der dauerhaften Ausführung, nicht auf einzelne Funktionsaufrufen.
Den Unterschied verstehen
Das Funktions-Timeout begrenzt jeden einzelnen Aufruf Ihrer Funktion auf standardmäßig bis zu 15 Minuten oder 90 Minuten bei asynchronen Aufrufen und Aufrufen der Ereignisquellenzuordnung auf Lambda Managed Instances. Das dauerhafte Ausführungs-Timeout (maximal 1 Jahr) begrenzt die Gesamtzeit vom Beginn der Ausführung bis zum Abschluss, Fehlschlag oder Timeout. Während dieses Zeitraums wird Ihre Funktion möglicherweise mehrfach aufgerufen, da sie Schritte verarbeitet, wartet und Fehler wiederherstellt.
Wenn Sie beispielsweise ein dauerhaftes Ausführungs-Timeout von 24 Stunden und ein Timeout für die Lambda-Funktion 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 den Timeout der Lambda-Funktion angerechnet, wohl aber auf den Timeout für die Ausführung
Sie können das Ausführungs-Timeout konfigurieren, wenn Sie eine dauerhafte Funktion mithilfe 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. Stellen Sie den Timeout-Wert für die Ausführung in Sekunden ein (Standard: 86400 Sekunden/24 Stunden, Minimum: 60 Sekunden, Maximum: 31536000 Sekunden/1 Jahr).
Anmerkung
Das Ausführungs-Timeout und das Funktions-Timeout sind unterschiedliche Einstellungen. Das Funktions-Timeout begrenzt jeden Aufruf, standardmäßig auf bis zu 15 Minuten oder 90 Minuten bei asynchronen Aufrufen und Aufrufen der Ereignisquellenzuordnung auf Lambda Managed Instances. Das Ausführungs-Timeout begrenzt die Gesamtzeit der dauerhaften Ausführung über alle ihre Aufrufe hinweg (maximal 1 Jahr).
Aufbewahrungszeitraum
Der 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 wiederholen. Die Aufbewahrungsfrist beginnt, wenn die Ausführung einen Endzustand erreicht (SUCCEEDED, FAILED, STOPPED oder TIMED_OUT).
Sie können den Aufbewahrungszeitraum konfigurieren, wenn Sie eine dauerhafte Funktion mithilfe 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 die Aufbewahrungsdauer 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 Kostenüberlegungen basiert. Längere Aufbewahrungsfristen bieten mehr Zeit für Debugging und Audits, erhöhen jedoch die Speicherkosten.
Weitere Informationen finden Sie auch unter
AWS Durable Execution SDK — Entwicklerhandbuch — Vollständige SDK-Referenz, Schnellstart-Tutorials, Testframework und sprachspezifische Anleitungen.
Dauerhafte Funktionen oder Step-Funktionen — Vergleichen Sie langlebige Funktionen mit Step Functions, um zu verstehen, wann jeder Ansatz am effektivsten ist.