View a markdown version of this page

SDK für langlebige Ausführung - AWS Lambda

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.

SDK für langlebige Ausführung

Das Durable Execution SDK ist die Grundlage für die Entwicklung langlebiger Funktionen. Es bietet Grundfunktionen, um den Fortschritt zu überprüfen, Wiederholungsversuche zu verarbeiten und den Ausführungsablauf zu verwalten. Das SDK abstrahiert die Komplexität der Checkpoint-Verwaltung und -Wiedergabe und ermöglicht es Ihnen, sequenziellen Code zu schreiben, der automatisch fehlertolerant wird.

Das SDK ist für Python JavaScript TypeScript, Java und C# (.NET) verfügbar. Eine vollständige API-Dokumentation, Schnellstart-Tutorials und sprachspezifische Anleitungen finden Sie im AWS Durable Execution SDK Developer Guide.

Was macht das SDK

Checkpoint-Verwaltung: Das SDK erstellt automatisch Checkpoints, wenn Ihre Funktion dauerhafte Operationen ausführt. Jeder Checkpoint zeichnet den Operationstyp, die Eingaben und die Ergebnisse auf. Wenn Ihre Funktion einen Schritt abschließt, behält das SDK den Checkpoint bei, bevor es fortfährt. Dadurch wird sichergestellt, dass Ihre Funktion nach jedem abgeschlossenen Vorgang wieder aufgenommen werden kann, falls er unterbrochen wird.

Koordination der Wiedergabe: Wenn Ihre Funktion nach einer Pause oder Unterbrechung wieder aufgenommen wird, führt das SDK eine Wiederholung durch. Es führt Ihren Code von Anfang an aus, überspringt jedoch abgeschlossene Operationen und verwendet gespeicherte Checkpoint-Ergebnisse, anstatt sie erneut auszuführen. Das SDK stellt sicher, dass die Wiedergabe deterministisch ist. Bei gleichen Eingaben und demselben Checkpoint-Log liefert Ihre Funktion dieselben Ergebnisse.

Zustandsisolierung: Das SDK verwaltet den Ausführungsstatus getrennt von Ihrer Geschäftslogik. Jede dauerhafte Ausführung hat ihr eigenes Checkpoint-Log, auf das andere Ausführungen nicht zugreifen können. Das SDK verschlüsselt Checkpoint-Daten im Ruhezustand und stellt sicher, dass der Status bei allen Wiederholungen konsistent bleibt.

Eine ausführliche Erläuterung der Funktionsweise von Checkpointing und des Wiedergabeverhaltens finden Sie unter Wichtige Konzepte im AWS Durable Execution SDK Developer Guide.

Dauerhafte Vorgänge

Das SDK stellt Ihrer Funktion ein DurableContext Objekt zur Verfügung. Dieser Kontext ersetzt den Standard-Lambda-Kontext und bietet Methoden zum Erstellen von Checkpoints, zum Verwalten des Ausführungsablaufs und zur Koordination mit externen Systemen.

Das DurableContext bietet die folgenden Operationen zum Erstellen dauerhafter Workflows:

Operation Description
Schritt Führen Sie eine Arbeitseinheit aus und überprüfen Sie sie mit konfigurierbaren Wiederholungsstrategien und Ausführungssemantik.
Wait Unterbrechen Sie die Ausführung für eine bestimmte Dauer, ohne Rechenressourcen zu verbrauchen.
Warte auf die Bedingung Abfrage einer Bedingung mit automatischem Checkpoint zwischen den Versuchen.
Rückruf Unterbrechen Sie die Ausführung und warten Sie, bis ein externes System Eingaben über die Lambda-API bereitstellt.
Invoke Rufen Sie eine weitere Lambda-Funktion auf und warten Sie mit automatischem Checkpointing auf ihr Ergebnis.
Parallel Führen Sie mehrere Operationen gleichzeitig mit konfigurierbaren Abschlussrichtlinien aus.
Zuordnung Verarbeiten Sie jedes Element in einer Sammlung gleichzeitig mit optionaler Parallelitätssteuerung.
Untergeordneter Kontext Erstellen Sie einen isolierten Ausführungskontext zum Gruppieren mehrerer Operationen.

Bei jeder dauerhaften Operation werden automatisch Checkpoints erstellt, wodurch sichergestellt wird, dass Ihre Funktion von jedem Punkt aus wieder aufgenommen werden kann. Eine ausführliche API-Referenz, Codebeispiele und die sprachspezifische Verwendung finden Sie unter SDK-Referenz im AWS Durable Execution SDK Developer Guide.

Wie werden langlebige Betriebsabläufe gemessen

Bei jedem dauerhaften Vorgang, den Sie aufrufen, werden Prüfpunkte DurableContext erstellt, an denen Sie den Ausführungsfortschritt verfolgen und Statusdaten speichern können. Für diese Vorgänge fallen je nach Nutzung Gebühren an, und die Checkpoints können Daten enthalten, die zu Ihren Schreib- und Aufbewahrungskosten beitragen. Zu den gespeicherten Daten gehören Daten zu Aufrufereignissen, Payloads, die von Schritten zurückgegeben werden, und Daten, die beim Abschließen von Rückrufen weitergegeben werden. Wenn Sie wissen, wie langlebige Betriebsabläufe gemessen werden, können Sie die Ausführungskosten abschätzen und Ihre Arbeitsabläufe optimieren. Einzelheiten zur Preisgestaltung finden Sie auf der Lambda-Preisseite.

Die Nutzlastgröße bezieht sich auf die Größe der serialisierten Daten, die bei einem dauerhaften Vorgang bestehen bleiben. Die Daten werden in Byte gemessen und die Größe kann je nach dem für die Operation verwendeten Serializer variieren. Die Nutzlast einer Operation kann das Ergebnis selbst für erfolgreiche Abschlüsse sein, oder das serialisierte Fehlerobjekt, wenn die Operation fehlgeschlagen ist.

Grundlegende Vorgänge

Grundlegende Operationen sind die grundlegenden Bausteine für dauerhafte Funktionen:

Operation Zeitpunkt der Checkpoints Anzahl der Operationen Daten wurden beibehalten
Ausführung Gestartet 1 Größe der Eingabe-Nutzlast
Ausführung Abgeschlossen () Succeeded/Failed/Stopped 0 Größe der Ausgabe-Nutzlast
Schritt Retry/Succeeded/Failed 10 + Keine Wiederholungen Bei jedem Versuch wurde die Nutzdatengröße zurückgegeben
Wait Gestartet 1 N/A
WaitForCondition Bei jedem Versuch einer Umfrage 1+ N Umfragen Bei jedem Abfrageversuch wurde die Nutzdatengröße zurückgegeben
Invocation-level Versuchen Sie es erneut Gestartet 1 Nutzlast für Fehlerobjekt

Callback-Operationen

Callback-Operationen ermöglichen es Ihrer Funktion, anzuhalten und darauf zu warten, dass externe Systeme Eingaben bereitstellen. Diese Operationen erzeugen Checkpoints, wenn der Callback erstellt wird und wenn er abgeschlossen ist:

Operation Zeitpunkt der Checkpoints Anzahl der Operationen Daten wurden beibehalten
CreateCallback Gestartet 1 N/A
Abschluss des Callbacks durch API-Aufruf Completed 0 Nutzlast für den Rückruf
WaitForCallback Gestartet 3 + Keine Wiederholungen (Kontext + Rückruf + Schritt) Payloads, die bei Schrittversuchen des Absenders zurückgegeben wurden, plus zwei Kopien der Callback-Nutzlast

Zusammengesetzte Operationen

Zusammengesetzte Operationen kombinieren mehrere dauerhafte Operationen, um komplexe Koordinationsmuster wie parallele Ausführung, Array-Verarbeitung und verschachtelte Kontexte zu verarbeiten:

Operation Timing am Checkpoint Anzahl der Operationen Daten wurden beibehalten
Parallel Gestartet 1 + N Zweige (1 übergeordneter Kontext + N untergeordnete Kontexte) Bis zu zwei Kopien der zurückgegebenen Nutzdatengröße aus jedem Zweig plus die Status der einzelnen Zweige
Zuordnung Gestartet Über 1 N Zweige (1 übergeordneter Kontext + N untergeordnete Kontexte) Bis zu zwei Kopien der zurückgegebenen Nutzdatengröße aus jeder Iteration plus die Status jeder Iteration
Versprechen Sie Helfer Completed 1 Hat die Payload-Größe aus dem Versprechen zurückgegeben
RunInChildContext Succeeded/Failed 1 Die Nutzdatengröße wurde aus dem untergeordneten Kontext zurückgegeben

Bei Kontexten, wie z. B. von runInChildContext oder intern von zusammengesetzten Operationen verwendet, werden Ergebnisse, die kleiner als 256 KB sind, direkt mit Checkpoints versehen. Größere Ergebnisse werden nicht gespeichert, sondern während der Wiedergabe rekonstruiert, indem die Operationen des Kontexts erneut verarbeitet werden.