Wie behebe ich hohe Latenzen bei meinen API-Gateway-Anfragen, die in Lambda integriert sind?

Lesedauer: 5 Minute
0

Die Antwortzeiten sind langsam, wenn ich Anfragen an eine Amazon-API-Gateway-API stelle, die in eine AWS-Lambda-Funktion integriert ist. Wie ermittle ich die Ursache für eine hohe Latenz?

Lösung

Eine hohe Latenz muss behoben werden, wenn ein API-Endpunkt, der in eine Lambda-Funktion integriert ist, zu lange braucht, um Antworten an einen Client zu senden. Überprüfen Sie die Metriken für API Gateway, um den Abschnitt des Anfrage-/Antwortflusses zu identifizieren, der eine hohe Latenz verursacht. Nachdem Sie die Ursache für die hohe Latenz ermittelt haben, können Sie daran arbeiten, die Verzögerungen zu reduzieren.

Filtern Sie CloudWatch-Metriken, um Latenzmetriken in der API zu überprüfen.

Führen Sie zunächst die folgenden Schritte aus, um den Abschnitt des Anfrage-/Antwortflusses zu identifizieren, der eine hohe Latenz verursacht:

  1. Beobachten Sie die Latenz des Clients nach dem Senden einer Anfrage an die API.
  2. Nachdem Sie die allgemeine Latenz notiert haben, öffnen Sie die Amazon-CloudWatch-Konsole. Wählen Sie im linken Navigationsbereich Metriken, Alle Metriken. Geben Sie im Metrik-Suchfeld APIGateway ein. Wählen Sie in den Suchergebnissen API Gateway, ApiID aus.
  3. Filtern Sie in der Liste der APIs nach der angegebenen API, indem Sie die API-ID oder den API-Namen verwenden. Aktivieren Sie nach dem Filtern die Kontrollkästchen Integrationslatenz und Latenz.
    Hinweis: Die API-ID und der API-Name sind in der API-Gateway-Konsole verfügbar.
  4. Öffnen Sie die Registerkarte Grafische Metriken. Wählen Sie für Statistik die Option Maximum aus. Wählen Sie für Zeitraum die Option 1 Minute aus. Wählen Sie über dem Diagramm den benutzerdefinierten Zeitraum aus. Wählen Sie den Zeitrahmen, in dem der Client eine hohe Latenz hatte.
  5. Sehen Sie sich sowohl die Integrationslatenz- als auch die Latenz-Metriken an. Notieren Sie sich die Werte und Zeitstempel, wenn diese Metriken hohe Werte haben. Die Werte können die Ursache für die hohe Latenz erklären.

Vergleichen Sie Metriken, um die Ursache der hohen Latenz zu ermitteln.

Überprüfen Sie weiterhin die Metriken zum Anfrage-/Antwortfluss, um die Ursache für die hohe Latenz zu ermitteln:

  1. Vergleichen Sie die API-Gateway-Latenz-Metrik mit dem beim Client beobachteten Gesamtlatenzwert.
    Beispielsweise hat eine API eine Latenz-Metrik mit einem Maximum-Wert, der in etwa dem Wert für die maximale Latenz beim Client entspricht. Diese Werte deuten darauf hin, dass die maximale Verzögerung im Anfrage-/Antwortfluss die Zeit ist, die das API Gateway für die Verarbeitung von Anfragen benötigt. Die API-Gateway-Verarbeitungszeit umfasst die Zeit, die benötigt wird, um Anfragen an Lambda zu senden, auf Antworten von Lambda zu warten und Antworten an einen Client zu senden.
  2. Vergleichen Sie die Integrationslatenz-Metrik mit der Latenz-Metrik für die API.
    Beispielsweise entspricht die Integrationslatenz-Metrik in etwa der Latenz-Metrik. Diese Werte weisen darauf hin, dass die Latenz bei der API hauptsächlich durch an Lambda gesendete Backend-Anfragen verursacht wird, deren Beantwortung länger dauert. Die Integrationslatenz-Metrik beinhaltet die Zeit zwischen dem Senden einer Anfrage durch das API Gateway und dem Empfang einer Antwort vom Backend durch das API Gateway.
  3. Wenn die Integrationslatenz-Metrik im Vergleich zur Latenz-Metrik für die API niedrig ist, sind die Backend-Antwortzeiten gering. In diesem Szenario dauert die Verarbeitung der API-Anfragen oder -Antworten länger.
    Beispielsweise kann das Zuordnen von in der API konfigurierten Vorlagen oder einem API-Gateway-Lambda-Autorizer zu Verzögerungen führen.
  4. Wenn die Latenz-Metrik für die API viel niedriger ist als die beim Client beobachtete Latenz, kann die Route zu Verzögerungen führen. Überprüfen Sie die Route zwischen dem Client und dem API Gateway, um zu überprüfen, ob es Zwischenendpunkte gibt, die zu Verzögerungen führen.
    Beispielsweise können private VPN-Verbindungen oder Proxys zu Verzögerungen führen.

Sehen Sie sich Lambda-Metriken an, um die Ursache für die hohe Integrationslatenz zu ermitteln

Konzentrieren Sie sich abschließend auf die Lambda-Metriken im Zusammenhang mit dem Anfrage-/Antwortfluss, um die Ursache für die hoheIntegrationslatenz zu finden:

  1. Überprüfen Sie die Metrik Dauer der Lambda-Funktion, um zu überprüfen, ob die Ausführungszeit der Lambda-Funktion länger ist. Wenn sich die Ausführungszeit der Lambda-Funktion erhöht hat, überprüfen Sie das CloudWatch-Protokoll, um den Codeabschnitt zu finden, der die hohe Latenz verursacht. Standardmäßig protokollieren Lambda-Funktionen die START-, END- und REPORT-Anweisungen in CloudWatch-Protokollen. Fügen Sie in jedem logischen Abschnitt des Lambda-Funktionscodes benutzerdefinierte Protokollanweisungen hinzu, um ausführliche CloudWatch-Protokolle zu erhalten.
  2. Wenn sich die Metrik Dauer während des Zeitraums mit hoher Latenz auf dem Client nicht geändert hat, stellen Sie fest, ob sich die Initialisierungszeit erhöht hat. Die Initialisierungszeit in einer Lambda-Funktion ist die Zeit, die benötigt wird, um die Ausführungsumgebung für die Verarbeitung einer Anfrage einzurichten. Anfragen, die von API Gateway kommen, erfordern möglicherweise eine neue Umgebung für die Verarbeitung. Dies wird über Lambda eingerichtet. Normalerweise wird der Code, der außerhalb des Lambda-Funktionshandlers vorhanden ist, während der Initialisierungszeit ausgeführt. Code, dessen Fertigstellung länger dauert, kann zu Verzögerungen bei den allgemeinen Antwortzeiten an den Client führen.
    Hinweis: Die Initialisierungszeit wird als INIT oder Kaltstart bezeichnet.
  3. Überprüfen Sie, ob sich die Dauer der Initialisierungszeit erhöht, indem Sie die Berichtsanweisungen in den Lambda-Funktionsprotokollen überprüfen. Die für einige Anfragen hohe Initialisierungszeit kann zu einem Anstieg der Integrationslatenz-Metrik für API Gateway führen.

Ähnliche Informationen

Arbeiten mit Metriken für HTTP-APIs

Dimensionen und Metriken des Amazon API Gateways

Überwachung der WebSocket-API-Ausführung mit CloudWatch-Metriken

Anzeigen von Metriken in der CloudWatch-Konsole

Lebenszyklus der Lambda-Laufzeitumgebung

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr