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.