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 verfügbar für JavaScript, TypeScript, Python, Java, Go und C# (.NET). Eine vollständige API-Dokumentation, Schnellstart-Tutorials und sprachspezifische Anleitungen finden Sie im AWS Durable Execution SDK — Entwicklerhandbuch.
Was macht das SDK
Verwaltung von Checkpoints: 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.
Staatliche Isolierung: 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 Die wichtigsten Konzepte in der AWS Durable Execution SDK-Entwicklerhandbuch.
Dauerhafte Vorgänge
Das SDK bietet Ihrer Funktion eine DurableContext Objekt. Dieser Kontext ersetzt den Standard-Lambda-Kontext und bietet Methoden zum Erstellen von Prüfpunkten, zum Verwalten des Ausführungsablaufs und zur Koordination mit externen Systemen.
Der DurableContext bietet die folgenden Operationen zum Erstellen dauerhafter Arbeitsabläufe:
| Operation | Description |
|---|---|
| Schritt | Führen Sie eine Arbeitseinheit mit konfigurierbaren Wiederholungsstrategien und Ausführungssemantik aus und überprüfen Sie sie. |
| 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 eine sprachspezifische Verwendung finden Sie unter SDK-Referenz in der AWS Durable Execution SDK-Entwicklerhandbuch.
Wie werden langlebige Betriebsabläufe gemessen
Jede dauerhafte Operation, die Sie aufrufen DurableContext erstellt Checkpoints, um den Ausführungsfortschritt zu verfolgen und Statusdaten zu speichern. 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 in 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 Ausgangsnutzlast |
| 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 | Zeitpunkt der Checkpoints | 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 |
| Promise Helferlein | 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 |
Für Kontexte wie von runInChildContext Ergebnisse, die kleiner als 256 KB sind, werden direkt mit Checkpoints verglichen oder intern für zusammengesetzte Operationen verwendet. Größere Ergebnisse werden nicht gespeichert, sondern während der Wiedergabe rekonstruiert, indem die Operationen des Kontexts erneut verarbeitet werden.