Risolvi i problemi relativi allo streaming delle risposte in API Gateway - Gateway Amazon API

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Risolvi i problemi relativi allo streaming delle risposte in API Gateway

La seguente guida per la risoluzione dei problemi potrebbe aiutare a risolvere i problemi relativi allo streaming di risposta APIs che utilizza.

Risoluzione dei problemi generali

Puoi utilizzare la scheda di test TestInvokeMethodo la scheda di test della console per testare la risposta dello stream. Le seguenti considerazioni potrebbero influire sull'utilizzo di test invoke per lo streaming di risposte:

  • Quando testate il vostro metodo, API Gateway memorizza nel buffer il payload di risposta in streaming. Una volta soddisfatta una delle seguenti condizioni, API Gateway restituisce una risposta unica contenente il payload bufferizzato:

    • La richiesta è completa

    • Sono trascorsi 35 secondi

    • È stato memorizzato nel buffer più di 1 MB di payload di risposta

  • Se trascorrono più di 35 secondi prima che il metodo restituisca lo stato di risposta HTTP e tutte le intestazioni, lo stato della risposta restituito è 0. TestInvokeMethod

  • API Gateway non produce alcun log di esecuzione.

Dopo aver distribuito l'API, puoi testare la risposta dello stream utilizzando un comando curl. Ti consigliamo di utilizzare l'-iopzione per includere le intestazioni di risposta del protocollo nell'output. Per vedere i dati di risposta non appena arrivano, usa l'opzione curl --no-buffer

Risolvi gli errori cURL

Se stai testando un'integrazione e ricevi l'errorecurl: (18) transfer closed with outstanding read data remaining, assicurati che il timeout dell'integrazione sia sufficientemente lungo. Se utilizzi una funzione Lambda, devi aggiornare il timeout di risposta della funzione Lambda. Per ulteriori informazioni, consulta Configurare il timeout della funzione Lambda.

Risolvi i problemi relativi all'utilizzo della registrazione degli accessi

Puoi utilizzare i log di accesso per la fase dell'API REST per registrare e risolvere i problemi del flusso di risposta. Oltre alle variabili esistenti, puoi utilizzare le seguenti variabili del registro di accesso:

$context.integration.responseTransferMode

La modalità di trasferimento delle risposte della tua integrazione. Ciò può essere BUFFERED o STREAMED.

$context.integration.timeToAllHeaders

Il tempo che intercorre tra il momento in cui API Gateway stabilisce la connessione di integrazione e il momento in cui riceve tutte le intestazioni di risposta all'integrazione dal client.

$context.integration.timeToFirstContent

Il tempo che intercorre tra il momento in cui API Gateway stabilisce la connessione di integrazione e il momento in cui riceve i primi byte di contenuto.

$context.integration.latency o $context.integrationLatency

Il momento in cui API Gateway stabilisce la connessione di integrazione e il momento in cui il flusso di risposta dell'integrazione è completo.

La figura seguente mostra come queste variabili di log di accesso rappresentino diversi componenti di un flusso di risposta.

Accedi alle variabili di registro per lo streaming delle risposte in API Gateway

Per ulteriori informazioni sui log degli accessi al, consultare Configurare la CloudWatch registrazione per REST APIs in API Gateway. Puoi anche usare X-Ray per monitorare il flusso di risposta. Per ulteriori informazioni, consulta Traccia delle richieste degli utenti alle REST API utilizzando X-Ray in Gateway API.