Lambda 函数的响应流 - AWS Lambda

Lambda 函数的响应流

配置 Lambda 函数 URL 以将响应负载流式传输回客户端。响应流式处理可通过提高首字节时间(TTFB)性能,使延迟敏感型应用程序受益。这是因为您可以在部分响应可用时将其发送回客户端。此外,您可以使用响应流式处理来构建返回较大负载的函数。响应流负载的软限制为 20MB,而缓冲响应的软限制为 6MB。流式处理响应还意味着您的函数不需要在内存中容纳整个响应。对于非常大的响应,这样可以减少您需要为函数配置的内存量。

Lambda 流式处理您的响应的速度取决于响应大小。函数响应的前 6MB 的流式处理速率无上限。对于大于 6MB 的响应,响应的其余部分受带宽上限的限制。有关流式处理带宽的详细信息,请参阅响应流式处理的带宽限制

流式处理响应会产生费用。有关更多信息,请参阅AWS Lambda 定价

Lambda 在 Node.js 托管式运行时系统上支持响应流式处理。对于其他语言,您也可以使用带有自定义运行时系统 API 集成的自定义运行时系统来流式处理响应或使用 Lambda Web Adapter。您可以通过 Lambda 函数 URL、AWS SDK 或使用 Lambda InvokeWithResponseStream API 来流式处理响应。

注意

通过 Lambda 控制台测试函数时,将始终显示缓冲响应。

响应流式处理的带宽限制

您的函数响应负载的前 6MB 的带宽无上限。在此初始突增之后,Lambda 会以最大 2MBps 的速率流式处理您的响应。如果您的函数响应从未超出 6MB,则此带宽限制永远不适用。

注意

带宽限制仅适用于您的函数的响应负载,不适用于您的函数的网络访问。

无上限带宽的速率因多种因素而异,其中包括函数的处理速度。通常,函数响应的前 6MB 的速率高于 2MBps。如果您的函数将响应流式处理到 AWS 以外的目标,则流式处理速率还取决于外部互联网连接的速度。