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 SDK für langlebige Ausführung ist die Grundlage für die Entwicklung langlebiger Funktionen. Es bietet Primitive, um den Fortschritt zu überprüfen, Wiederholungsversuche zu verarbeiten und den Ausführungsablauf zu verwalten. Das SDK abstrahiert die Komplexität der Verwaltung und Wiedergabe von Checkpoints und ermöglicht es Ihnen, sequentiellen Code zu schreiben, der automatisch fehlertolerant wird.

Das SDK ist für JavaScript, TypeScript, Python und Java 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-Management: 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 abgeschlossen hat, behält das SDK den Checkpoint bei, bevor der Vorgang fortgesetzt wird. Dadurch wird sichergestellt, dass Ihre Funktion nach jeder abgeschlossenen Operation wieder aufgenommen werden kann, falls sie 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 denselben Eingaben und demselben Checkpoint-Log erzeugt Ihre Funktion dieselben Ergebnisse.

Zustandsisolierung: Das SDK behält den Ausführungsstatus getrennt von Ihrer Geschäftslogik bei. Jede dauerhafte Ausführung hat ihr eigenes Checkpoint-Protokoll, 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 zur Erstellung von Checkpoints, zur Verwaltung des Ausführungsflusses und zur Koordination mit externen Systemen.

Der DurableContext bietet die folgenden Operationen für den Aufbau 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.
Warten Sie auf die Bedingung Abfrage nach 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 andere Lambda-Funktion auf und warten Sie auf ihr Ergebnis mit automatischem Checkpointing.
Parallel Führen Sie mehrere Operationen gleichzeitig mit konfigurierbaren Abschlussrichtlinien aus.
Zuordnung Verarbeiten Sie jedes Element in einer Sammlung gleichzeitig mit optionaler Parallelitätssteuerung.
Kontext für Kinder Erstellen Sie einen isolierten Ausführungskontext für die Gruppierung mehrerer Operationen.

Jeder dauerhafte Vorgang erstellt automatisch Checkpoints und stellt so sicher, 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 Operationen gemessen

Jeder dauerhafte Vorgang, über den Sie aufrufen, DurableContext erstellt Kontrollpunkte, um den Ausführungsfortschritt zu verfolgen und Statusdaten zu speichern. Für diese Operationen 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 Aufrufereignisse, Payloads, die von Schritten zurückgegeben wurden, und Daten, die beim Ausführen von Rückrufen weitergegeben werden. Wenn Sie wissen, wie langlebige Operationen 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 Größe der Nutzlast bezieht sich auf die Größe der serialisierten Daten, die bei einem dauerhaften Betrieb fortgeführt werden. Die Daten werden in Byte gemessen und die Größe kann je nach dem für den Vorgang verwendeten Serializer variieren. Die Nutzlast eines Vorgangs kann das Ergebnis selbst sein, wenn der Vorgang erfolgreich abgeschlossen wurde, oder das serialisierte Fehlerobjekt, falls der Vorgang fehlschlägt.

Grundlegende Vorgänge

Grundoperationen sind die grundlegenden Bausteine für dauerhafte Funktionen:

Operation Zeitpunkt der Checkpoints Anzahl der Operationen Die Daten wurden beibehalten
Ausführung Gestartet 1 Größe der eingegebenen Nutzlast
Ausführung Abgeschlossen () Succeeded/Failed/Stopped 0 Größe der Ausgangsnutzlast
Schritt Retry/Succeeded/Failed 1 +1 N Wiederholungen Bei jedem Versuch wurde die Nutzlastgröße zurückgegeben
Wait Gestartet 1 N/A
WaitForCondition Jeder Abfrageversuch 1 + N Umfragen Bei jedem Abfrageversuch wurde die Nutzlastgröße zurückgegeben
Invocation-level Versuchen Sie es erneut Gestartet 1 Payload für das Fehlerobjekt

Callback-Operationen

Callback-Operationen ermöglichen es Ihrer Funktion, eine Pause einzulegen und darauf zu warten, dass externe Systeme Eingaben bereitstellen. Diese Operationen erstellen Checkpoints, wenn der Callback erstellt und abgeschlossen ist:

Operation Zeitpunkt der Checkpoints Anzahl der Operationen Die Daten wurden beibehalten
CreateCallback Gestartet 1 N/A
Abschluss des Rückrufs per API-Aufruf Completed 0 Payload des Rückrufs
WaitForCallback Gestartet 3 + N Wiederholungen (Kontext + Rückruf + Schritt) Payloads, die durch Versuche des Absenders zurückgesendet wurden, plus zwei Kopien der Payload für den Rückruf

Zusammengesetzte Operationen

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

Operation Zeitplan für Checkpoints Anzahl der Operationen Die 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 den Status jedes Zweigs
Zuordnung Gestartet 1 + N Zweige (1 übergeordneter Kontext + N untergeordnete Kontexte) Bis zu zwei Kopien der zurückgegebenen Payload-Größe aus jeder Iteration plus der Status jeder Iteration
Versprich Helfer Completed 1 Die Nutzlastgröße wurde aus dem Versprechen zurückgegeben
RunInChildContext Succeeded/Failed 1 Die Nutzdatengröße wurde aus dem untergeordneten Kontext zurückgegeben

Bei Kontexten, die z. B. aus zusammengesetzten Operationen stammen runInChildContext oder intern von zusammengesetzten Operationen verwendet werden, werden Ergebnisse, die kleiner als 256 KB sind, direkt überprüft. Größere Ergebnisse werden nicht gespeichert, sondern während der Wiedergabe rekonstruiert, indem die Operationen des Kontextes erneut verarbeitet werden.