Wie Lambda mit Fehlern und Wiederholungsversuchen mit asynchronem Aufruf umgeht - 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.

Wie Lambda mit Fehlern und Wiederholungsversuchen mit asynchronem Aufruf umgeht

Lambda verwaltet die asynchrone Ereigniswarteschlange Ihrer Funktion und versucht, es bei Fehlern erneut zu versuchen. Wenn die Funktion einen Fehler zurückgibt, versucht Lambda standardmäßig, sie noch zweimal auszuführen, mit einer Wartezeit von einer Minute zwischen den ersten beiden Versuchen und zwei Minuten zwischen dem zweiten und dritten Versuch. Zu Funktionsfehlern gehören Fehler, die vom Code der Funktion zurückgegeben werden, sowie Fehler, die von der Laufzeit des Fehlers zurückgegeben werden, wie z. B. Timeouts.

Wenn für die Funktion nicht genügend Gleichzeitigkeit für die Verarbeitung aller Ereignisse verfügbar ist, werden weitere Anforderungen gedrosselt. Bei Drosselungsfehlern (429) und Systemfehlern (Serie 500) gibt Lambda das Ereignis an die Warteschlange zurück und versucht, die Funktion standardmäßig bis zu 6 Stunden lang erneut auszuführen. Das Wiederholungsintervall erhöht sich exponentiell von 1 Sekunde nach dem ersten Versuch auf maximal 5 Minuten. Lambda stellt viele Einträge in die Warteschlange, erhöht das Wiederholungsintervall und reduziert die Rate, mit der es Ereignisse aus der Warteschlange liest.

Selbst wenn Ihre Funktion keinen Fehler zurückgibt, ist es möglich, dass sie dasselbe Ereignis mehrmals von Lambda erhält, da die Warteschlange selbst „letztendliche Konsistenz“ ist. Wenn die Funktion mit eingehenden Ereignissen nicht Schritt halten kann, kann es auch vorkommen, dass Ereignisse aus der Warteschlange gelöscht werden, ohne zur Funktion gesendet zu werden. Stellen Sie sicher, dass Ihr Funktionscode doppelte Ereignisse ordnungsgemäß verarbeitet und dass Sie über genügend Gleichzeitigkeit zur Verarbeitung aller Aufrufe verfügen.

Wenn die Warteschlange sehr lang ist, können neue Ereignisse veraltet sein, bevor Lambda sie an Ihre Funktion senden kann. Wenn ein Ereignis abläuft oder bei ihm alle Verarbeitungsversuche fehlschlagen, wird es von Lambda verworfen. Sie können die Fehlerbehandlung für eine Funktion konfigurieren, um die Anzahl der Wiederholungsversuche zu reduzieren, die Lambda durchführt, oder um unverarbeitete Ereignisse schneller zu verwerfen.

Sie können Lambda auch so konfigurieren, dass ein Aufrufdatensatz an einen anderen Service gesendet wird. Weitere Informationen finden Sie unter Erfassung von Datensätzen asynchroner Lambda-Aufrufe.