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.
Bewährte Methoden für langlebige Lambda-Funktionen
Dauerhafte Funktionen verwenden ein wiedergabebasiertes Ausführungsmodell, das andere Programmierpraktiken erfordert als herkömmliche Lambda-Funktionen. Anleitungen zum Schreiben und Testen von AWS dauerhaftem Workflow-Code finden Sie unter Bewährte Methoden im Durable Execution SDK Developer Guide.
Die folgenden Empfehlungen sind bewährte Methoden für die Bereitstellung, den Aufruf und die Überwachung von dauerhaften Lambda-Funktionen.
Funktionsversionen und Aliase
Rufen Sie Funktionen mit Versionsnummern oder Aliasnamen auf, um Ausführungen an bestimmte Codeversionen zu binden. Stellen Sie sicher, dass neue Codeversionen den Status älterer Versionen verarbeiten können. Benennen Sie Schritte nicht um und ändern Sie ihr Verhalten nicht so, dass die Wiedergabe unterbrochen wird. Wenn Sie einen Schritt umbenennen oder sein Verhalten ändern, während Ausführungen ausgeführt werden, können diese Ausführungen möglicherweise nicht fortgesetzt werden oder zu falschen Ergebnissen führen. Das passiert, weil die Laufzeitumgebung den gespeicherten Status nicht mehr mit der erwarteten Schrittdefinition abgleichen kann.
Überwachen
Aktivieren Sie die strukturierte Protokollierung mit Ausführungs-IDs und Schrittnamen. Richten Sie CloudWatch Alarme für Fehlerraten und Ausführungsdauer ein. Verwenden Sie Tracing, um Engpässe zu identifizieren. Eine ausführliche Anleitung finden Sie unter Überwachung und Debuggen.
Fehlerbehandlung
Zusätzlich zur Konfiguration von Wiederholungsstrategien für vorübergehende Fehler können Sie auf Ihrer dauerhaften Funktion auch eine Warteschlange (Dead-Letter Queue, DLQ) einrichten, um Ereignisse aus dauerhaft fehlgeschlagenen Ausführungen aufzuzeichnen. Wenn eine dauerhafte Ausführung nach einem asynchronen Aufruf einen Terminalstatus (FAILED, STOPPED oder TIMED_OUT) erreicht, sendet Lambda das ursprüngliche auslösende Ereignis an die DLQ. Auf diese Weise können Sie fehlgeschlagene Ereignisse überprüfen, debuggen und optional erneut verarbeiten, ohne sie zu verlieren.
Um eine DLQ zu konfigurieren, setzen Sie die DeadLetterConfig Eigenschaft Ihrer Funktion auf eine Amazon SQS SQS-Warteschlange oder einen Amazon SNS SNS-Themen-ARN. Weitere Informationen finden Sie unter Warteschlangen. Dead-letter
Folgen Sie diesen bewährten Methoden zur Fehlerbehandlung mit dauerhaften Funktionen:
-
Einen DLQ für asynchrone Aufrufe konfigurieren — Beim asynchronen Aufrufen dauerhafter Funktionen wird immer eine Warteschlange mit unerlaubten Buchstaben angehängt. Im Gegensatz zu asynchronen Aufrufen von Funktionen ohne dauerhafte Ausführung wiederholt Lambda bei einem Fehler nicht automatisch dauerhafte Ausführungen. Eine ordnungsgemäß konfigurierte DLQ erfasst Ereignisse, die zu dauerhaft fehlgeschlagenen Ausführungen geführt haben. Stellen Sie sicher, dass der DLQ über die richtigen Berechtigungen und ausreichend Kapazität für den Empfang von Nachrichten verfügt.
-
Schrittweise Wiederholungsstrategien anwenden — Konfigurieren Sie explizite Wiederholungsstrategien mit geeignetem Backoff für vorübergehende Ausfälle. Anleitungen zur Konfiguration von Wiederholungsversuchen finden Sie unter Wiederholungen für dauerhafte Funktionen.
-
Kombinieren Sie DLQs mit EventBridge Benachrichtigungen — Verwenden Sie EventBridge Regeln, um bei Statusänderungen FAILED, STOPPED und TIMED_OUT zu warnen, sodass Sie in Echtzeit sehen können, und verwenden Sie eine DLQ, um die ursprüngliche Event-Payload für eine spätere Analyse oder Wiederverarbeitung beizubehalten.
-
Überwachen Sie die DLQ-Tiefe — Erstellen Sie für Ihre
ApproximateNumberOfMessagesVisibleDLQ-Metrik einen CloudWatch Alarm, um zu erkennen, wenn sich Fehler häufen.