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.
Grundlegendes zum Wiederholungsverhalten in Lambda
Wenn Sie eine Funktion direkt aufrufen, bestimmen Sie die Strategie für den Umgang mit Fehlern im Zusammenhang mit dem Funktionscode. Lambda wiederholt diese Art von Fehlern nicht automatisch in Ihrem Namen. Um den Vorgang zu wiederholen, können Sie die Funktion manuell erneut aufrufen, das fehlgeschlagene Ereignis zum Debuggen an eine Warteschlange senden oder den Fehler ignorieren. Der Code Ihrer Funktion wurde möglicherweise vollständig, teilweise oder überhaupt nicht ausgeführt. Wenn Sie es erneut versuchen, stellen Sie sicher, dass der Code Ihrer Funktion das gleiche Ereignis mehrmals verarbeiten kann, ohne doppelte Transaktionen oder andere unerwünschte Nebenwirkungen zu verursachen.
Wenn Sie eine Funktion indirekt aufrufen, müssen Sie sich über das Wiederholungsverhalten des Aufrufers und alle Services im Klaren sein, mit denen die Anforderung während des Vorgangs konfrontiert wird. Dies umfasst die folgenden Szenarien.
-
Asynchroner Aufruf – Lambda startet bei Funktionsfehlern zwei Wiederholungsversuche. Wenn die Funktion nicht über genügend Kapazität verfügt, um alle eingehenden Anfragen zu bearbeiten, warten Ereignisse möglicherweise stundenlang in der Warteschlange, bis sie an die Funktion gesendet werden. Sie können für die Funktion eine Warteschlange für unzustellbare Nachrichten konfigurieren, um nicht erfolgreich verarbeitete Ereignisse aufzufangen. Weitere Informationen finden Sie unter Asynchrones Aufrufen einer Lambda-Funktion.
-
Ereignisquellen-Mappings – Ereignisquellen-Mappings, die aus Streams lesen, führen für den gesamten Batch von Elementen einen Wiederholungsversuch durch. Wiederholte Fehlermeldungen blockieren die Verarbeitung des betroffenen Shards, bis der Fehler behoben ist oder die Elemente ablaufen. Zum Erkennen blockierter Shards können Sie die Metrik Iterator Age überwachen.
Für Ereignisquellen-Zuweisungen, die aus einer Warteschlange lesen, bestimmen Sie die Zeitdauer zwischen Wiederholversuchen und dem Ziel für fehlgeschlagene Ereignisse, indem Sie für die Quellwarteschlange die Zeitbeschränkung für die Sichtbarkeit und die Redrive-Richtlinie konfigurieren. Weitere Informationen finden Sie unter Wie Lambda Datensätze aus Stream- und warteschlangenbasierten Ereignisquellen verarbeitet und in der servicespezifischen Dokumentation unter Lambda mit Ereignissen aus anderen Diensten aufrufen AWS.
-
AWS Dienste — AWS Dienste können Ihre Funktion synchron oder asynchron aufrufen. Beim synchronen Aufruf entscheidet der Dienst, ob er es erneut versucht. Zum Beispiel wiederholen Amazon-S3-Batch-Operationen den Vorgang, wenn die Lambda-Funktion einen
TemporaryFailure
-Antwortcode zurückgibt. Dienste, die Anfragen von einem Upstream-Benutzer oder -Client weiterleiten, haben möglicherweise eine Wiederholungsstrategie oder leiten die Fehlerantwort an den Anforderer zurück. Beispielsweise leitet API Gateway die Fehlerantwort immer an den Anforderer zurück.Bei asynchronen Aufrufen ist die Wiederholungslogik unabhängig von der Aufrufquelle dieselbe. Standardmäßig wiederholt Lambda einen fehlgeschlagenen asynchronen Aufruf bis zu zweimal. Weitere Informationen finden Sie unter Wie Lambda mit Fehlern und Wiederholungsversuchen mit asynchronem Aufruf umgeht.
-
Andere Konten und Clients – Wenn Sie Zugriff auf andere Konten gewähren, können Sie mithilfe von ressourcenbasierten Richtlinien einschränken, welche Services und Ressourcen von ihnen zum Aufruf Ihrer Funktion konfiguriert werden können. Um Ihre Funktion vor Überlastung zu schützen, sollten Sie erwägen, Ihrer Funktion mit Amazon API Gateway eine API Ebene voranzustellen.
Um Ihnen bei der Behebung von Fehlern in Lambda-Anwendungen zu helfen, ist Lambda in Dienste wie Amazon CloudWatch und integriert. AWS X-Ray Sie können eine Kombination aus Protokollen, Metriken, Alarmen und Ablaufverfolgung verwenden, um Probleme in Ihrem Funktionscode oder anderen Ressourcen, die Ihre Anwendung unterstützenAPI, schnell zu erkennen und zu identifizieren. Weitere Informationen finden Sie unter Überwachung und Fehlerbehebung bei Lambda-Funktionen.