Wie behebe ich Probleme mit API Gateway-Endpunkten, die in Lambda integriert sind?

Lesedauer: 2 Minute
0

Ich möchte einen Amazon API Gateway-Endpunkt in AWS Lambda integrieren, habe aber Probleme.

Kurzbeschreibung

Die folgenden Gründe können zu Problemen mit deinem API Gateway-Endpunkt führen, der in Lambda integriert ist:

  • API Gateway hat keine Lambda-Funktionsberechtigungen.
  • Es kommt zu einer Drosselung.
  • Die HTTP-Statuscode-Zuordnung ist falsch oder fehlt.
  • Lambda-Serviceausnahmen werden nicht verwaltet.

Lösung

Hinweis: Die folgende Lösung verwendet REST-API-Gateway zur Problembehandlung.

Bevor du beginnst, aktiviere Amazon CloudWatch Logs, um API Gateway-Fehler zu beheben. Wähle unter Protokollstufe die Option INFO aus, um Ausführungsprotokolle für alle Anforderungen zu generieren.

API Gateway hat keine Lambda-Funktionsberechtigungen

Der Fehler Invalid permissions on Lambda function tritt auf, wenn API Gateway keine Berechtigungen zum Aufrufen der Lambda-Funktion hat. Informationen zur Behebung dieses Problems findest du unter Wie behebe ich die Fehler „Invalid permissions on Lambda function“ von API Gateway-REST-APIs?

Hinweis: Wenn du einen anderen Service verwendest, um API Gateway-Ressourcen bereitzustellen, z. B. AWS CloudFormation, gewähre der Ressource AWS::Lambda::Permission Berechtigungen.

Es kommt zu einer Drosselung

Wenn der Backend-Service aufgrund einer hohen Anzahl von Anforderungen gedrosselt wird, gibt die API Gateway-API möglicherweise einen internen Serverfehler zurück. Aktiviere einen exponentiellen Backoff- und Wiederholungsmechanismus, und versuche es dann erneut mit der Anforderung. Wenn das Problem weiterhin besteht, überprüfe dein API Gateway-Kontingent. Wenn du das Servicekontingent überschreitest, fordere eine Kontingenterhöhung an.

Möglicherweise erhältst du aufgrund von Problemen mit der Drosselung der Lambda-Funktion auch die Fehler Rate exceeded und 429 TooManyRequestsException. Weitere Informationen findest du unter Wie behebe ich das Drosseln der Lambda-Funktion mit den Fehlern „Rate exceeded“ und 429 „TooManyRequestsException“?

Fordere eine Kontingenterhöhung für die Parallelität der Lambda-Funktion an, damit die Funktion nicht gedrosselt wird.

Die Statuscode-Zuordnung ist falsch oder fehlt

Wenn die HTTP-Statuscodezuordnung falsch ist oder fehlt, erhältst du möglicherweise eine 500-Fehlermeldung, die der folgenden ähnelt:

„Execution failed due to configuration error: Output mapping refers to an invalid method response: 2xx/4xx/5xx“.

Um diesen Fehler zu beheben, konfiguriere die Integrationsanforderung und -antwort der API-Operation so, dass der richtige Statuscode zurückgegeben wird.

Lambda-Serviceausnahmen werden nicht verwaltet

Wenn du keine Lambda-Serviceausnahmen verwaltest, z. B. eine Zeitüberschreitung für eine Lambda-Funktion, erhältst du den Fehler Lambda.Unknown. Um eine Zeitüberschreitung der Lambda-Funktion zu verhindern, mache deinen Lambda-Funktionscode idempotent.

Weitere Informationen findest du unter Problembehandlungsmuster in Amazon API Gateway und AWS Lambda.

Ähnliche Informationen

Wie behebe ich 5xx-Fehler für die API Gateway-REST-API?