Streaming di risposte per le funzioni Lambda
Le funzioni Lambda possono trasmettere i payload di risposta ai client tramite gli URL delle funzioni Lambda o utilizzando l'API InvokeWithResponseStream (tramite l'SDK AWS o le chiamate API dirette). Lo streaming delle risposte può favorire le applicazioni sensibili alla latenza migliorando le prestazioni del time to first byte (TTFB). Questo perché consente di inviare risposte parziali al client non appena diventano disponibili. Inoltre, le funzioni di streaming di risposta possono restituire payload fino a 200 MB, rispetto al massimo di 6 MB per le risposte bufferizzate. Lo streaming di una risposta significa anche che la funzione non deve contenere l'intera risposta in memoria. Per risposte molto grandi, ciò può ridurre la quantità di memoria necessaria per configurare la funzione.
La velocità con cui Lambda trasmette le tue risposte dipende dalla dimensione della risposta. La velocità di streaming per i primi 6 MB di risposta della funzione è illimitata. Per le risposte superiori a 6 MB, il resto della risposta è soggetto a un limite di larghezza di banda. Per ulteriori informazioni sulla larghezza di banda dello streaming, consulta la sezione Limiti di larghezza di banda per lo streaming delle risposte.
Lo streaming delle risposte comporta un costo. Per ulteriori informazioni, consulta la sezione Prezzi di AWS Lambda
Lambda supporta lo streaming delle risposte sui runtime gestiti di Node.js. Per altri linguaggi, puoi utilizzare un runtime personalizzato con un'integrazione dell'API Runtime personalizzata per eseguire lo streaming delle risposte o utilizzare l'adattatore Web Lambda
Nota
Quando testi la funzione tramite la console Lambda, vedrai sempre le risposte come memorizzate nel buffer.
Argomenti
Limiti di larghezza di banda per lo streaming delle risposte
I primi 6 MB del payload di risposta della funzione hanno una larghezza di banda illimitata. Dopo questa espansione iniziale, Lambda trasmette la tua risposta a una velocità massima di 2 MB/s. Se le risposte delle tue funzioni non superano mai i 6 MB, questo limite di larghezza di banda non verrà mai applicato.
Nota
I limiti di larghezza di banda si applicano solo al payload di risposta della funzione e non all'accesso alla rete da parte della funzione.
La velocità della larghezza di banda illimitata varia in base a una serie di fattori, inclusa la velocità di elaborazione della funzione. Normalmente puoi aspettarti una velocità superiore a 2 MB/s per i primi 6 MB di risposta della funzione. Se la funzione esegue lo streaming delle risposte a una destinazione esterna a AWS, la velocità di streaming dipende anche dalla velocità della connessione Internet esterna.
Compatibilità VPC con streaming di risposta
Quando utilizzi le funzioni Lambda in un ambiente VPC, per lo streaming di risposta è importante tenere in considerazione quanto segue:
-
Gli URL delle funzioni Lambda non supportano lo streaming di risposta all'interno di un ambiente VPC.
-
Puoi utilizzare lo streaming di risposta all'interno di un VPC invocando la funzione Lambda tramite l'SDK AWSutilizzando l'API
InvokeWithResponseStream. Ciò richiede la configurazione degli endpoint VPC appropriati per Lambda. -
Per gli ambienti VPC, dovrai creare un endpoint VPC di interfaccia per Lambda per abilitare la comunicazione tra le tue risorse nel VPC e il servizio Lambda.
Un'architettura tipica per lo streaming di risposta in un VPC potrebbe includere:
Client in VPC -> Interface VPC endpoint for Lambda -> Lambda function -> Response streaming back through the same path