Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Probleme mit dem Antwort-Streaming in API Gateway beheben
Die folgenden Anleitungen zur Fehlerbehebung können Ihnen helfen, Probleme mit Ihren Benutzern zu lösen APIs , die Antwort-Streaming verwenden.
Allgemeine Problembehebung
Sie können den Test-Tab TestInvokeMethododer den Test-Tab der Konsole verwenden, um Ihre Stream-Antwort zu testen. Die folgenden Überlegungen könnten sich auf Ihre Verwendung von Test Invoke für das Antwort-Streaming auswirken:
-
Wenn Sie Ihre Methode testen, puffert API Gateway Ihre gestreamte Antwort-Payload. Sobald eine der folgenden Bedingungen erfüllt ist, gibt API Gateway eine einmalige Antwort zurück, die die gepufferte Nutzlast enthält:
Die Anfrage ist abgeschlossen
35 Sekunden sind vergangen
Mehr als 1 MB Antwort-Nutzdaten wurden gepuffert
-
Wenn mehr als 35 Sekunden vergehen, bis Ihre Methode einen HTTP-Antwortstatus und alle Header zurückgibt, ist der zurückgegebene Antwortstatus 0. TestInvokeMethod
-
API Gateway erstellt keine Ausführungsprotokolle.
Nachdem Sie Ihre API bereitgestellt haben, können Sie Ihre Stream-Antwort mit einem curl-Befehl testen. Wir empfehlen, dass Sie die -i Option verwenden, um Protokollantwort-Header in die Ausgabe aufzunehmen. Verwenden Sie die Option curl, um die Antwortdaten so zu sehen, wie sie ankommen --no-buffer
Behebung von cURL-Fehlern
Wenn Sie eine Integration testen und der Fehler angezeigt wird, stellen Sie sichercurl: (18) transfer closed with outstanding
read data remaining, dass das Timeout Ihrer Integration lang genug ist. Wenn Sie eine Lambda-Funktion verwenden, müssen Sie das Antwort-Timeout der Lambda-Funktion aktualisieren. Weitere Informationen finden Sie unter Lambda-Funktions-Timeout konfigurieren.
Problembehandlung mithilfe der Zugriffsprotokollierung
Sie können Zugriffsprotokolle für Ihre REST-API-Phase verwenden, um Ihren Antwortstream zu protokollieren und Fehler zu beheben. Zusätzlich zu den vorhandenen Variablen können Sie die folgenden Zugriffsprotokollvariablen verwenden:
$context.integration.responseTransferMode-
Der Antwortübertragungsmodus Ihrer Integration. Dies kann entweder
BUFFEREDoderSTREAMEDsein. $context.integration.timeToAllHeadersDie Zeit zwischen dem Zeitpunkt, zu dem API Gateway die Integrationsverbindung herstellt, und dem Empfang aller Integrationsantwort-Header vom Client.
$context.integration.timeToFirstContentDie Zeit zwischen dem Zeitpunkt, zu dem API Gateway die Integrationsverbindung herstellt, und dem Empfang der ersten Inhaltsbytes.
$context.integration.latencyoder$context.integrationLatencyDer Zeitpunkt, zu dem API Gateway die Integrationsverbindung herstellt, bis der Integrationsantwortstream abgeschlossen ist.
Die folgende Abbildung zeigt, wie diese Zugriffsprotokollvariablen verschiedene Komponenten eines Antwortstreams darstellen.
Weitere Informationen zu Zugriffsprotokollen finden Sie unter Richten Sie die CloudWatch Protokollierung für REST APIs in API Gateway ein. Sie können X-Ray auch verwenden, um Ihren Antwortstream zu überwachen. Weitere Informationen finden Sie unter Benutzeranforderungen für Ablaufverfolgung an REST-APIs mithilfe von X-Ray in API Gateway.