Wie behebe ich Probleme mit hoher Latenz in meinen API-Gateway-Anforderungen, die in Lambda integriert sind?

Lesedauer: 5 Minute
0

Die Antwortzeiten sind langsam, wenn ich Anforderungen an eine Amazon API Gateway-API stelle, die in eine AWS Lambda-Funktion integriert ist. Ich möchte die Ursache für eine hohe Latenz ermitteln.

Lösung

Hohe Latenzzeiten müssen behoben werden, wenn ein mit einer Lambda-Funktion integrierter API-Endpunkt zu lange braucht, um Antworten an einen Client zu senden. Überprüfe die Metriken für API Gateway, um den Abschnitt des Anforderungs-/Antwortflusses zu identifizieren, der eine hohe Latenz verursacht. Nachdem du die Ursache für die hohe Latenz ermittelt hast, kannst du daran arbeiten, die Verzögerungen zu reduzieren.

CloudWatch-Metriken filtern, um Latenzmetriken in der API zu überprüfen

Gehe zunächst wie folgt vor, um den Abschnitt des Anforderungs-/Antwortflusses zu identifizieren, der eine hohe Latenz verursacht:

  1. Beobachte die Latenz des Clients nach dem Senden einer Anforderung an die API.
  2. Nachdem du die Gesamtlatenz notiert hast, öffne die Amazon CloudWatch-Konsole. Wähle im linken Navigationsbereich Metriken, Alle Metriken aus. Gib in das Suchfeld für Metriken APIGateway ein. Wähle in den Suchergebnissen API-Gateway, ApiId aus.
  3. Filtere in der Liste der APIs nach der angegebenen API, indem du die API-ID oder den API-Namen verwendest. Markiere nach dem Filtern die Kontrollkästchen IntegrationLatency und Latency.
    Hinweis: Die API-ID und der API-Name sind in der API Gateway-Konsole verfügbar.
  4. Wähle die Registerkarte Grafisch dargestellte Metriken aus. Wähle für Statistik die Option Maximum aus. Wähle für Zeitraum die Option 1 Minute aus. Wähle über dem Diagramm den benutzerdefinierten Zeitraum aus. Wähle den Zeitraum aus, in dem der Client eine hohe Latenz hatte.
  5. Überprüfe die sowohl IntegrationLatency- als auch die Latency-Metriken. Notiere dir die Werte und Zeitstempel, wenn diese Metriken hohe Werte haben. Die Werte können die Ursache für eine hohe Latenz erklären.

Metriken vergleichen, um die Ursache für hohe Latenz zu ermitteln

Überprüfe weiterhin die Metriken im Zusammenhang mit dem Anforderungs-/Antwortfluss, um die Ursache für die hohe Latenz zu ermitteln:

  1. Vergleiche die Latency-Metrik von API-Gateway mit dem Gesamtlatenzwert, der auf dem Client beobachtet wurde.
    Eine API hat beispielsweise eine Latency-Metrik mit dem Wert Maximum, der ungefähr dem Wert für die Max Latency auf dem Client entspricht. Diese Werte deuten darauf hin, dass die maximale Verzögerung im Anforderungs-/Antwortfluss die Zeit ist, die API-Gateway für die Verarbeitung von Anforderungen benötigt. Die API-Gateway-Verarbeitungszeit umfasst die Zeit, die benötigt wird, um Anforderungen an Lambda zu senden, auf Antworten von Lambda zu warten und Antworten an einen Client zu senden.
  2. Vergleiche die IntegrationLatency-Metrik mit der Latency-Metrik für die API.
    Beispielsweise entspricht die IntegrationLatency-Metrik ungefähr der Latency-Metrik. Diese Werte weisen darauf hin, dass die Latenz an der API hauptsächlich durch Backend-Anforderungen verursacht wird, die an Lambda gesendet werden und deren Beantwortung länger dauert. Die Metrik IntegrationLatency umfasst die Zeit zwischen dem Senden einer Anforderungen durch das API Gateway und dem Empfangen einer Antwort vom Backend durch das API Gateway
  3. Wenn die IntegrationLatency-Metrik im Vergleich zur Latency-Metrik für die API niedrig ist, sind die Backend-Antwortzeiten niedrig. In diesem Szenario dauert die Verarbeitung der API-Anforderungen oder -Antworten länger.
    Beispielsweise können in der API konfigurierte Zuordnungsvorlagen oder ein API Gateway Lambda-Genehmiger zu Verzögerungen führen.
  4. Wenn die Latency-Metrik für die API viel niedriger ist als die am Client beobachtete Latenz, kann die Route zu Verzögerungen führen. Überprüfe die Route zwischen dem Client und dem API Gateway, um dich zu vergewissern, ob es Zwischenendpunkte gibt, die zu Verzögerungen führen.
    Beispielsweise können private VPN-Verbindungen oder Proxys zu Verzögerungen führen.

Lambda-Metriken anzeigen, um die Ursache für eine hohe IntegrationLatency zu ermitteln

Konzentriere dich abschließend auf die Lambda-Metriken im Zusammenhang mit dem Anforderungs-/Antwortfluss, um die Ursache für die hohe IntegrationLatency zu ermitteln:

  1. Überprüfe die Metrik der Lambda-Funktion Dauer, um zu überprüfen, ob die Ausführungszeit der Lambda-Funktion länger ist. Wenn die Ausführungszeit der Lambda-Funktion länger geworden ist, überprüfe das CloudWatch-Protokoll, um den Codeabschnitt zu finden, der eine hohe Latenz verursacht. Standardmäßig protokollieren Lambda-Funktionen die START-, END- und REPORT-Anweisungen in CloudWatch-Protokollen. Füge 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 der Zeit hoher Latenz auf dem Client nicht geändert hat, stelle fest, ob sich die Initialisierungszeit verlängert hat. Die Initialisierungszeit in einer Lambda-Funktion ist die Zeit, die benötigt wird, um die Ausführungsumgebung für die Verarbeitung einer Anforderung einzurichten. Anforderungen, die von API Gateway kommen, erfordern möglicherweise eine neue Umgebung für die Verarbeitung. Diese wird über Lambda eingerichtet. Normalerweise wird der Code, der außerhalb des Lambda-Funktions-Handlers vorhanden ist, während der Initialisierungszeit ausgeführt. Code, dessen Fertigstellung länger dauert, kann zu Verzögerungen bei den allgemeinen Antwortzeiten für den Client führen.
    Hinweis: Die Initialisierungszeit wird INIT oder Kaltstart genannt.
  3. Vergewissere dich, dass die Dauer der Initialisierungszeit verlängert wird, indem du die Berichtsanweisungen in den Lambda-Funktionsprotokollen überprüfst. Die Initialisierungszeit, die für einige Anforderungen hoch ist, kann zu einer Erhöhung der Metrik IntegrationLatency für API Gateway führen.

Ähnliche Informationen

Arbeiten mit Metriken für HTTP-APIs

Dimensionen und Metriken von Amazon-API-Gateway

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

Metriken auf der CloudWatch-Konsole anzeigen

Lebenszyklus der Lambda-Laufzeitumgebung

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 5 Monaten