写点什么

亚马逊云科技 Lambda 引入响应有效负载流

  • 2023-05-24
    北京
  • 本文字数:1204 字

    阅读完需:约 4 分钟

亚马逊云科技 Lambda引入响应有效负载流

亚马逊云科技最近宣布,AWS Lambda 函数可以将响应有效负载以流的方式逐步传回客户端。新特性提高了 Web 和移动应用程序的性能,目前在 Node.js 14.x 及以上版本的运行时以及自定义运行时中可用。

 

响应流帮助开发人员将响应从他们的函数以流的方式传输给他们的用户,而不必等待整个响应完成。对于这项期待已久的特性,可以使用Lambda函数URL和 SDK 来调用其 API,但目前还无法使用 API 网关或应用程序负载均衡器(ALB)对响应有效负载进行流式处理。对于它的优势,首席开发大使Julian Wood是这样的:


在传统的请求-响应模型中,在将响应返回给客户端之前,需要完全生成和缓存响应。客户端等待响应生成会降低 TTFB(Time To First Byte)性能。Web 应用程序对 TTFB 和页面加载性能尤其敏感。

 

响应流是为图像、视频、大型文档或数据库结果等大型有效负载而设计的,它需要用 streamifyResponse()装饰器封装 Lambda 函数处理程序,如下所示:


exports.handler = awslambda.streamifyResponse(	async (event, responseStream, context) => {    	responseStream.setContentType("text/plain");    	responseStream.write("Hello, world!");    	responseStream.end();	});
复制代码

 

其中,新的 responseStream 对象提供了一个流对象,函数可以向该对象写入数据并立即发送到客户端。开发人员可以选择设置响应的 Content-Type 报头来传递关于流的额外信息。Datadog 工程团队负责人AJ Stuyvenberg测试了这一新功能。他评论道:


这次发布可能看起来微不足道,但它解锁了几个关键的用例——对于希望利用服务器端渲染并减少第一字节时间的 Next.js 和 React 开发人员来说尤其如此。

 

新特性目前支持的最大响应大小为 20MB(软限制),流函数的最大带宽吞吐量限制为 16Mbps(2MB/s)。目前,响应流仅在 Node.js SDK 中原生提供,不过开发人员可以在支持其他编程语言的自定义Lambda运行时中实现它。虽然有些开发人员关注的是它的局限性,但 Ampt 首席执行官兼联合创始人Jeremy Daly在其新闻通讯中写道:


该特性不仅让 Lambda 函数可以将响应流逐步返回给客户端以减少 TTFB,而且还允许开发人员超过标准的 6MB 负载限制。

 

云咨询顾问、亚马逊云科技无服务器英雄Yan Cui写了一篇文章,演示了如何使用新的流式响应返回大型对象,而无需将结果存储在 S3 中。

 

Lambda 的响应流并不是云计算领域中第一个可用的选项,Vercel 最近就在 Node.js(Lambda)和 Edge 运行时中提供了HTTP响应流支持

 

亚马逊云科技无服务器模式集合中发布了 Lambda 流应用程序示例。这些应用程序支持用 AWS SAM 来构建和部署资源。流式响应增加了Lambda的网络传输成本,不过,除了每个请求的前 6MB 之外,亚马逊云科技免费套餐现在还包含每月 100GiB 的 HTTP 响应流。


原文链接:

https://www.infoq.com/news/2023/04/aws-lambda-response-streaming/


相关阅读:

亚马逊云科技开源 Mountpoint for Amazon S3,通过挂载点技术简化 Amazon S3 对象存储的使用

容器与无服务器,是竞争对手还是队友?

2023-05-24 08:004073

评论

发布
暂无评论
发现更多内容

Linux创建/删除用户组

在即

9月日更

OpenKruise v0.10.0 新特性 WorkloadSpread 解读

阿里巴巴云原生

阿里云 容器 云原生 OpenKruise Workload

Java 中的 NaN

HoneyMoose

架构实战课程 模块四作业

Frank

EMQ 映云科技加入信通院可信开源社区共同体,加速共建开源生态

EMQ映云科技

云计算 开源 物联网 开源社区 信通院

VEGA:诺亚AutoML高性能开源算法集简介

华为云开发者联盟

机器学习 AutoML 网络结构 VEGA AutoML算法

从技术宝库到云上机遇:华为云开天aPaaS的“修路记”

脑极体

九月的更文生活

卢卡多多

生活 9月日更

Prometheus 2.26.0 新特性

耳东@Erdong

release Prometheus 9月日更

照妖镜纳米“相机”:让反应历程无处遁形

脑极体

告别Kafka Stream,让轻量级流处理更加简单

阿里巴巴云原生

kafka 阿里云 云原生 ETL

如何用 Java 判断一个给定的数是不是素数

HoneyMoose

如何看待游戏世界的未来:解析去中心化区块链游戏的优缺点

CECBC

公众服务常用电话号码大全

入门小站

工具

JDK 内置命令行工具学习笔记二

风翱

JVM 9月日更

用明道云搭建一个住宅式物业管理系统

明道云

CANN 5.0硬核技术抢先看

华为云开发者联盟

架构 AI 计算 CANN 异构计算架构

深入 iOS 静态链接器(一)— ld64

字节跳动终端技术

ios 移动终端 火山引擎 静态链接器

第 3 章 -《Linux 一学就会》- 文件的基本管理和XFS 文件系统备份恢复

学神来啦

Linux 运维 文件存储 linux云计算

把低代码开发平台推给开百货店的朋友,对他有帮助吗?

低代码小观

低代码 企业 企业管理 管理者 管理工具

数据仓库的基本要求

奔向架构师

数据仓库 9月日更

网络协议之:WebSocket的消息格式

程序那些事

网络协议 HTTP websocket 程序那些事

技术分析| 音视频服务集群如何实现全球多中心化调度

anyRTC开发者

区块链 音视频 WebRTC 中心化调度

linux之service命令

入门小站

Linux

精灵图在现代前端中到底有用没,css中显示和隐藏竟有两种不同方式

你好bk

CSS JavaScript html css3 大前端

绝绝子!阿里这套并发图册+JDK源码速成笔记可以封神!

Java 程序员 架构 面试 计算机

JavaScript进阶(八)generator(生成器)实现

Augus

JavaScript 9月日更

23. 大部分工作将发生转变而非消失

Databri_AI

人工智能

模块八作业 一 消息队列存储模型设计

babos

#架构实战营

WeTest云手机升级,支持iOS 15全新系统

WeTest

网络攻防学习笔记 Day145

穿过生命散发芬芳

VXLAN 9月日更

亚马逊云科技 Lambda引入响应有效负载流_服务革新_Renato Losio_InfoQ精选文章