Wie behebe ich Probleme mit synchronen Lambda-Aufrufen?

Lesedauer: 3 Minute
0

Ich habe eine AWS-Lambda-Funktion eingerichtet, die synchron aufgerufen wird, aber das Ziel wird nicht initiiert. Wie kann ich dieses Problem beheben? Wenn ich eine Lambda-Funktion über die Lambda-Konsole aufrufe, wird sie synchron oder asynchron aufgerufen? -oder- Warum versucht meine Lambda-Funktion nicht erneut, nachdem ich sie so eingestellt habe, dass sie es ein oder zwei Mal erneut versucht?

Auflösung

Wenn Sie eine Lambda-Funktion synchron aufrufen und diese fehlschlägt, gibt es folgende mögliche Ursachen:

  • Lambda hat keine Berechtigung, die im Code enthaltenen Aktionen auszuführen.
  • Der AWS-Service, der die Lambda-Funktion aufruft, verfügt nicht über ausreichende Berechtigungen.
  • Lambda wird asynchron aufgerufen.
  • Lambda unterstützt Ziele nur für asynchrone Aufrufe und Stream-Aufrufe, nicht aber für synchrone Aufrufe.

Führen Sie die folgenden Schritte aus, um Probleme mit synchronen Aufrufen zu beheben:

1.    Ermitteln Sie, wie die Lambda-Funktion aufgerufen wird. Wird die Funktion mit AWS CLI aufgerufen? Wird die Funktion über einen AWS-Service aufgerufen?

2.    Überprüfen Sie, ob der AWS-Service die Lambda-Funktion synchron oder asynchron aufruft.

3.    Rufen Sie die Lambda-Funktion synchron mit dem folgenden Befehl auf:

aws lambda invoke --function-name my-function --cli-binary-format raw-in-base64-out --payload '{ "key": "value" }' response.json

Prüfen Sie, ob ein 200-Statuscode gemeldet wird oder ob der Befehl einen Fehler zurückgibt.

4.    Denken Sie daran, dass das Wiederholungsverhalten von Lambda-Funktionen bei synchronen Aufrufen vom Client gesteuert wird. Die Konfiguration der Wiederholungsversuche über die AWS-Lambda-Konsole ist auf asynchrone Aufrufe beschränkt. Stellen Sie sicher, dass der Client die Anfragen wiederholt, anstatt die Lambda-Protokolle zu überprüfen.

5.    Denken Sie daran, dass eine in der Lambda-Konsole aufgerufene Lambda-Funktion immer ein synchroner Aufruf ist.

6.    Das Verhalten bei Wiederholungsversuchen für synchrone Aufrufe variiert je nach AWS-Service basierend auf der Ereignisquellenzuordnung der einzelnen Services.

Weitere Informationen finden Sie unter Ereignisgesteuerter Aufruf.

7.    Stellen Sie sicher, dass der Code der Lambda-Funktion idempotent ist und dieselben Nachrichten mehrfach verarbeiten kann.

8.    Identifizieren und beheben Sie alle Fehler, die Ihre Lambda-Funktion zurückgibt.

Weitere Informationen finden Sie unter Wie behebe ich Lambda-Funktionsfehler?

9.    Wenn Sie das Problem immer noch nicht lösen können, öffnen Sie einen Fall beim AWS Support. Geben Sie in dem Fall die folgenden Informationen an:

  • Die Lambda-Funktion-ARN.
  • Der Workflow zur Einrichtung der Lambda-Funktion mit allen enthaltenen Leistungen.
  • Einzelheiten darüber, ob das Problem zeitweise oder kontinuierlich auftritt.
  • Vollständige CloudWatch-Protokolle im .txt-Format vom Zeitpunkt des Auftretens des Problems. Diese CloudWatch-Protokolle werden verwendet, um Lambda-Funktionsfehler zu identifizieren, zu denen Timeout-Probleme, Init-Dauer und Berechtigungsprobleme gehören.
  • Der genaue Zeitstempel des Problems mit der Zeitzone oder dem Zeitstempel in UTC.

Hinweis: AWS-Supportmitarbeiter haben aus Sicherheits- und Datenschutzgründen keinen Zugriff auf CloudWatch-Kundenprotokolle.


Relevante Informationen

Vergleich von Lambda-Aufrufmodi

Aufruf von Lambda-Funktionen

Einführung in AWS-Lambda-Ziele

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr