Wie kann ich Latenzprobleme für meinen Edge-optimierten API-Endpunkt in API-Gateway beheben?
Ich stelle eine höhere Latenz fest, wenn Kunden Anfragen an meine Edge-optimierte API in Amazon-API-Gateway senden. Wie finde ich die Ursache der Latenz für die Fehlerbehebung?
Kurzbeschreibung
Um die Latenzquelle für einenEdge-optimierten API-Endpunkt zu ermitteln, bestimmen Sie, wie lange jeder der folgenden Teile des Verbindungspfads dauert:
Wichtig: Diese Verbindungspfadschritte gelten nur für Edge-optimierte API-Endpunkte und nicht für regionale API-Endpunkte. Der Zugriff auf Edge-optimierte APIs erfolgt über eine Amazon CloudFront-Verteilung. Der Zugriff auf regionale API-Endpunkte erfolgt nicht über CloudFront.
- Beginn der Verbindung zur DNS-Namensauflösung
- Beginn der Verbindung zum Transmission Control Protocol (TCP)-Handshake zur Verbindung mit CloudFront
- Beginn der Verbindung zum Secure Sockets Layer (SSL)-Handshake zur Verbindung mit CloudFront
- Beginn der Verbindung zum Senden der Client-HTTP-Anfrage an CloudFront
- Beginn der Verbindung zum ersten von CloudFront übertragenen Byte
- Gesamtzeit für die Anfrage und die Antwort an die API
- Zeit für die Verarbeitung der Anforderung durch API-Gateway und die Antwort an den CloudFront-Edge-Standort
- Zeit, die der Integrationsendpunkt benötigt, um auf die HTTP-Anfrage vom API-Gateway antworten
- Zeit für die Antwort des API-Gateways an den CloudFront-Edge-Standort und für die Antwort von CloudFront an den Client
Die Teile des Verbindungspfads, die am längsten dauern, sind die Ursache für die Latenzzeit.
Hinweis: Sie können AWS-X-Rayverwenden, um Benutzeranfragen zu verfolgen und zu analysieren,während sie durch Ihre Amazon-API-Gateway-REST-APIs zu den zugrunde liegenden Services gelangen. API-Gateway unterstützt X-Ray-Tracing für alleAPI-Gateway-REST-API-Endpunkttypenin den AWS-Regionen, in denen X-Ray verfügbar ist. Eine Übersicht über alle Regionen, in denen X-Ray verfügbar ist, finden Sie in der Tabelle der AWS-Regionen.
Behebung
Führen Sie das Bashskript curl\ _for\ _latency aus
Um die Dauer der Schritte 1–6 im Verbindungspfadprozess Ihrer API zu bestimmen, führen Sie das Bashskript curl\ _for\ _latency auf GitHub aus.
Wichtig: Stellen Sie sicher, dass Sie die Werte fürURL,HTTP-Methode und****Parameter so ersetzen,dass sie mit den Informationen für Ihre API übereinstimmen.
Das Skript gibt die Zeitspanne zurück, die Ihre API benötigt, um die folgenden Schritte des Verbindungspfads abzuschließen:
- Beginn der Verbindung zur DNS-Namensauflösung („time_namelookup“)
- Beginn der Verbindung zum TCP-Handshake zur Verbindung mit CloudFront („time_connect“)
- Beginn der Verbindung zum SSL-Handshake zur Verbindung mit CloudFront („time_appconnect“)
- Beginn der Verbindung zum Senden der Client-HTTP-Anfrage an CloudFront („time_pretransfer“)
- Beginn der Verbindung zum ersten von CloudFront übertragenen Byte („time_starttransfer“)
- Gesamtzeit für die Anfrage und die Antwort an die API („time_total“)
Nachdem Sie die Ereignisse identifiziert haben, die zur Latenz beitragen, lesen Sie den Abschnitt Wie behebe und reduziere ich die erhöhte Latenz von CloudFront aus?
Überprüfen Sie, wie lange API-Gateway braucht, um die Anfrage zu verarbeiten und an den CloudFront-Edge-Standort zu antworten
Überprüfen Sie dieLatenzmetrikfür Ihre API in derCloudWatch-Konsole. Konfigurieren Sie dann die Einstellungen für das Latenzmetrikdiagramm auf 1-Minuten-Intervall und Maximum, um die längste Verarbeitungszeit innerhalb eines einminütigen Zeitraums anzuzeigen.
Anweisungen finden Sie unter API-Gateway-Metriken in der CloudWatch-Konsole anzeigen.
Überprüfen Sie, wie lange es dauert, bis der Integrationsendpunkt auf die HTTP-Anfrage von API-Gateway antwortet
Überprüfen Sie dieIntegrationLatency-Metrik in derCloudWatch-Konsole. Konfigurieren Sie dann die Einstellungen des IntegrationLatency-Diagramms für 1-Minuten-Intervall und Maximum, um die längste Verarbeitungszeit innerhalb eines einminütigen Zeitraums zu sehen.
-oder-
Wenn Sie die CloudWatch-Protokollierung für Ihre API aktiviert haben,überprüfen Sie die Protokolle auf eine Position, die der folgenden ähnelt:
Received response. Integration latency: 325 ms
Sie können auch $context-Variablen mit Zugriffsprotokollierung hinzufügen, um zusätzliche Latenzprobleme zu beheben.
Anweisungen finden Sie unter Wie aktiviere ich CloudWatch-Logs zur Fehlerbehebung bei meiner API-Gateway-REST-API oder WebSocket-API?
Mit Lambda integrierte Amazon-API-Gateway-Anfragen
Wenn Sie AWS Lambda mit API-Gateway verwenden und eine hohe IntegrationLatency-Metrik sehen,überprüfen Sie die CloudWatch-Protokolle Ihrer Lambda-Funktion. 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. Kaltstarts in Lambda-Funktionen werden nicht in der Dauer-Metrik der Funktion aufgezeichnet, sodass die Integrationslatenz Ihrer API länger sein kann als die Dauer der Funktion. Um die Dauer Ihrer Funktion bei einem Kaltstart zu sehen, verwenden Sie AWS-X-Ray.
Weitere Informationen sind unter Wie behebe ich hohe Latenzzeiten in meinen mit Lambda integrierten API-Gateway-Anforderungen?
Überprüfen Sie, wie lange API-Gateway braucht, um dem CloudFront-Edge-Standort zu antworten und wie lange CloudFront braucht, um dem Client zu antworten
Nehmen Sie die Gesamtzeit für die Anfrage und die Antwort an die API („time_total“) und ziehen Sie dann Folgendes ab:
- Beginn der Verbindung zum Senden der Client-HTTP-Anfrage an CloudFront („time_pretransfer“)
- Zeit, die das API-Gateway benötigt, um die Anfrage zu verarbeiten und an den CloudFront-Edge-Standort zu antworten (die Latenzmetrik für Ihre API)
Das Ergebnis ist die Zeit, die API-Gateway benötigt, um dem CloudFront-Edge-Standort zu antworten und die Zeit, die CloudFront benötigt, um dem Client zu antworten.
Weitere Informationen
Arbeiten mit Metriken für HTTP-APIs
Dimensionen und Metriken von Amazon-API-Gateway
Überwachung der WebSocket-API-Ausführung mit CloudWatch-Metriken
Wie kann ich Amazon API-Gateway-Logs zur Fehlerbehebung verwenden?
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 7 Monaten
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren