Streaming de resposta para funções do Lambda - AWS Lambda

Streaming de resposta para funções do Lambda

É possível configurar seus URLs de função do Lambda para fazer o streaming de cargas de resposta de volta aos clientes. O streaming de respostas pode beneficiar aplicações sensíveis à latência ao melhorar o desempenho do tempo até o primeiro byte (TTFB). Isso ocorre porque é possível enviar respostas parciais de volta ao cliente assim que elas se tornarem disponíveis. Além disso, é possível usar o streaming de respostas para construir funções que retornem cargas maiores. As cargas de streams de resposta têm um limite flexível de 20 MB em comparação com o limite de 6 MB para respostas armazenadas em buffer. O streaming de uma resposta também significa que sua função não precisa caber em toda a resposta na memória. Para respostas muito grandes, isso pode reduzir a quantidade de memória que você precisa configurar para sua função.

A velocidade com que o Lambda faz o streaming das suas respostas depende do tamanho da resposta. A taxa de streaming dos primeiros 6 MB da resposta da sua função é ilimitada. Para respostas maiores que 6 MB, o restante da resposta está sujeito a um limite de largura de banda. Para obter mais informações sobre largura de banda de streaming, consulte Limites de largura de banda para streaming de resposta.

O streaming de respostas gera um custo. Para obter mais informações, consulte Preços do AWS Lambda.

O Lambda oferece suporte ao streaming de respostas em runtimes gerenciados por Node.js. Em outras linguagens, é possível usar um runtime personalizado com uma integração personalizada da API de runtime para transmitir respostas ou usar o Lambda Web Adapter. Você pode fazer o streaming das respostas por meio dos URLs de função do Lambda, do AWS SDK ou usando a API InvokeWithResponseStream do Lambda.

nota

Ao testar sua função por meio do console do Lambda, você sempre verá as respostas como armazenadas em buffer.

Limites de largura de banda para streaming de resposta

Os primeiros 6 MB da carga útil de resposta da sua função têm largura de banda ilimitada. Após essa intermitência inicial, o Lambda faz o streaming da sua resposta a uma taxa máxima de 2 MBps. Se as respostas da sua função nunca excederem 6 MB, esse limite de largura de banda nunca será aplicado.

nota

Os limites de largura de banda se aplicam somente à carga útil da resposta da sua função e não ao acesso à rede por sua função.

A taxa de largura de banda ilimitada varia de acordo com diversos fatores, incluindo a velocidade de processamento da sua função. Normalmente, você pode esperar uma taxa superior a 2 MBps para os primeiros 6 MB da resposta da sua função. Se sua função estiver fazendo o streaming de uma resposta para um destino fora da AWS, a taxa de streaming também dependerá da velocidade da conexão externa com a Internet.