写点什么

亚马逊云科技 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:004142

评论

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

T 级数据量迁移!知名云巨头如何从 Jira 切换至 ONES?

万事ONES

例行汇报,看看 FinClip 3月都干了啥

FinClip

Selenium之POM 设计模式

QE_LAB

selenium 测试技术

青云职上 群英有为 | 助力区域打造人才高地,龙岗双选会顺利举办!

科技说

Django笔记七之ManyToMany和OneToOne介绍

Hunter熊

Python django 多对多 ManyToMany OneToOne

毫末顾维灏:中国首个自动驾驶数据智能体系MANA将以产品服务方式对外合作开放

科技大数据

CIO成就计划第二季第一期 | 活动回顾:基于数字技术重塑流程,驱动业务增长

科创人

软件测试/测试开发丨电商业务的性能测试必备基础知识

测试人

软件测试 Jmeter 性能测试 测试开发

大普微DapuStor完成阿里云PolarDB数据库产品生态集成认证

阿里云数据库开源

国产数据库 polarDB PolarDB-X PolarDB-PG 大普微

华为云智能编程进高校,解读行业发展新趋势

科技说

上干货!小红书“薯条”业务竞价策略及最优公式详解

小红书技术REDtech

广告 机制策略

在字节跳动实习后,程序员是这样写简历的

字节跳动技术范儿

字节跳动 实习

高效复制:在Linux中并发执行相同任务,各自生成日志

小毛驴的烂笔头

什么是文件传输协议,文件传输协议又是怎么工作的

镭速

尚硅谷CDH 6.3.2视频教程发布

小谷哥

重新理解RocketMQ Commit Log存储协议

Apache RocketMQ

RocketMQ 消息队列

毫末发布DriveGPT雪湖·海若!首期智能驾驶能力、驾驶场景识别能力对行业开放

科技大数据

码头风云——5G降临

脑极体

5G

数据产品经理的三大底层思维

Taylor

数据产品经理 产品思维 数据产品 数据思维 #商业思维

FLINK 在蚂蚁大规模金融场景的平台建设

Apache Flink

大数据 flink 实时计算

降本增效不是“盲目减脂”,利用亚马逊云科技达成云成本正循环

Lily

MobPush创建推送

MobTech袤博科技

技术速递 | 分布式政企应用如何快速实现云原生的微服务架构改造

科技说

公厕一体化智慧管理解决方案@光明源智能科技

光明源智慧厕所

智慧城市

打卡智能中国(四):向着沙漠,向着沙漠

脑极体

AI 遥感

AI日课@20230410:大语言模型是对本质知识的无损压缩

无人之路

ChatGPT

CIO成就计划预告·微软韦青:数智时代下的企业数智化战略决策

科创人

捷行十周年庆,惊喜活动

ShineScrum

得物 API一站式协作平台的一些思考

得物技术

API Gateway

AI时代下的打工人 | 社区征文

Dec

三周年征文

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