Streaming di risposte per le funzioni Lambda - AWS Lambda

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à.

Streaming di risposte per le funzioni Lambda

Le funzioni Lambda possono trasmettere nativamente i payload di risposta ai client tramite la funzione Lambda URLs o utilizzando l'InvokeWithResponseStreamAPI (tramite l' AWS SDK o le chiamate API dirette). La tua funzione Lambda può anche trasmettere i payload di risposta tramite l'integrazione proxy di Amazon API Gateway, che utilizza l'InvokeWithResponseStreamAPI per richiamare la tua funzione. 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.

Nota

Lo streaming di risposta Lambda non è ancora disponibile in tutti. Regioni AWS Per informazioni sulla disponibilità delle funzionalità per regione, consulta AWS le funzionalità di Builder Center.

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.

Le risposte in streaming comportano costi e le risposte in streaming non vengono interrotte o interrotte quando la connessione del client che effettua la chiamata viene interrotta. Ai clienti verrà fatturata l'intera durata della funzione, quindi i clienti devono prestare attenzione quando configurano lunghi timeout di funzionamento.

Lambda supporta lo streaming delle risposte sui runtime gestiti di Node.js. Per altri linguaggi, incluso Python, puoi utilizzare un runtime personalizzato con un'integrazione API Runtime personalizzata per lo streaming delle risposte o utilizzare il Lambda Web Adapter.

Nota

Quando testi la funzione tramite la console Lambda, vedrai sempre le risposte come memorizzate nel buffer.

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 raffica iniziale, Lambda trasmette la tua risposta a una velocità massima di 2. MBps 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 frequenza superiore a 2 MBps per i primi 6 MB di risposta della funzione. Se la tua funzione trasmette in streaming una risposta a una destinazione esterna 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:

  • La funzione Lambda URLs non supporta lo streaming di risposte all'interno di un ambiente VPC.

  • Puoi utilizzare lo streaming di risposte all'interno di un VPC richiamando la funzione Lambda tramite l'SDK utilizzando l' AWS 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