Wie verhindere ich doppelte Lambda-Funktionsaufrufe?

Letzte Aktualisierung: 18.11.2021

Meine AWS-Lambda-Funktion erhält immer wieder mehrere Aufrufsanforderungen für ein einziges Ereignis. Wie verhindere ich, dass meine Lambda-Funktion mehrmals von demselben Ereignis aufgerufen wird?

Kurzbeschreibung

Um doppelte Lambda-Funktionsaufrufe zu verhindern, gehen Sie anhand des von Ihnen verwendeten Aufruftyps wie folgt vor.

Hinweis: Bei synchronen Aufrufen sind die Clients und AWS-Services, die eine Lambda-Funktion aufrufen, für die Durchführung von Wiederholungsversuchen verantwortlich. Bei asynchronen Aufrufen unternimmt Lambda bei Fehlern automatisch Wiederholungsversuche, mit Verzögerungen zwischen den Wiederholungsversuchen.

Behebung

Bei asynchronen Aufrufen

Sehen Sie sich die Amazon CloudWatch Logs Ihrer Lambda-Funktion an, um Folgendes zu überprüfen:

  • Haben die doppelten Aufrufe dieselbe Anforderungs-ID oder nicht
  • Gaben die doppelten Aufrufe Fehler zurück oder haben sie das Zeitlimit überschritten

Führen Sie dann basierend auf Ihrem Anwendungsfall eine der folgenden Aktionen aus:

Bei doppelten Aufrufen, die Fehler zurückgegeben oder das Zeitlimit überschritten haben und dieselbe Anforderungs-ID haben:

Hinweis: Doppelte Aufrufe, die Fehler oder Zeitüberschreitungen zurückgeben und dieselbe Anforderungs-ID haben, weisen darauf hin, dass der Lambda-Service die Funktion erneut versucht hat.

Konfigurieren Sie die Fehlerbehandlung für asynchrone Aufrufe, um die Häufigkeit zu reduzieren, mit der Ihre Lambda-Funktion fehlgeschlagene asynchrone Aufrufsanforderungen erneut versucht.

Weitere Informationen finden Sie unter Fehlerbehandlung und automatische Wiederholungsversuche in AWS Lambda.

Bei doppelten Aufrufen, die keine Fehler zurückgegeben oder das Zeitlimit überschritten haben:

Hinweis: Doppelte Aufrufe, die keine Fehler oder Zeitüberschreitungen zurückgeben, weisen auf clientseitige Wiederholungsversuche hin.

Bei synchronen Aufrufen

Hinweis: Das Verhalten bei Wiederholungsversuchen für synchrone Aufrufe variiert je nach AWS-Service basierend auf der Ereignisquellenzuordnung jedes Services. Weitere Informationen finden Sie unter Ereignisgesteuerter Aufruf.