写点什么

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

评论

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

机器学习应用设计阶段的 10 个陷阱和 11 个最佳实践

机器学习

Elasticsearch 批量查询 mget

escray

elastic 七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试

《论雨伞道德》- 不要和自己的良心捉迷藏

石云升

读书笔记 28天写作 雨伞道德

前端知识总结输出文章目录大全

梁龙先森

JavaScript 大前端 编程语言 28天写作

即构SDK新增焦点语音功能,可实现特定用户语音的聚焦

ZEGO即构

音视频行业不可或缺的功能-云端录制

anyRTC开发者

音视频 WebRTC 在线教育 直播 RTC

区块链作用之数字货币的影响

v16629866266

Volcano 监控设计解读,一看就懂

华为云开发者联盟

Kubernetes 云原生 监控 Volcano 计算

【CSS】不规则阴影

德育处主任

css3 html/css CSS小技巧 28天写作 纯CSS

个人隐私之老话重谈

张老蔫

28天写作

Vue3 中 v-if 和 v-show 指令实现的原理 | 源码解读

五柳

源码分析 大前端 Vue3

美国大选期间美股迎来大涨,舆情到底有何魔力?

星环科技

人工智能 大数据

[高并发]高并发分布式锁架构大解密,不是所有的锁都是分布式锁!!

Geek_0o5u34

前端模拟假数据(json-server光速入门篇)

德育处主任

json 大前端 Node 28天写作 json-server

甲方日常 91

句子

工作 随笔杂谈 日常

面对key数量多和区间查询低效问题:Hash索引趴窝,LSM树申请出场

华为云开发者联盟

数据库 数据 存储 Hash索引 LSM树

你会读书吗?

xcbeyond

读书感悟 读书方式 28天写作

HTML5中的拖放功能

我是哪吒

html html5 程序员 面试 大前端

AI、IoT、区块链、自主系统、下一代计算五大技术引领未来供应链发展

京东科技开发者

区块链 AI IoT 供应链

IDEA 异常退出 解决方法

任广印

IDEA

高阶段位机房管理:3D集装箱数据中心,触发科技“火苗”的燃烧

一只数据鲸鱼

数据可视化 3D可视化 机房管理 数据中心可视化 集装箱式数据中心

【Android Tips】小厂的扫码还能怎么做?

李小四

机器学习 二维码 扫码 微信扫码

【CSS】波纹效果

德育处主任

CSS小技巧 28天写作 纯CSS

代码 or 指令,浅析ARM架构下的函数的调用过程

华为云开发者联盟

函数 任务栈 arm架构

灵雀云Kube-OVN进入CNCF沙箱,成为CNCF首个容器网络项目

York

灵雀云 Kubernetes Kube-OVN

漫谈HTTP协议

架构精进之路

HTTP 七日更 28天写作

微服务容错时,这些技术你要立刻想到

华为云开发者联盟

微服务 线程 服务雪崩 断路器 服务降级

CSS实现数据统计

德育处主任

大前端 CSS小技巧 28天写作 纯CSS

数据中台:建立在数据网络效应之上的赛道

奇点云

大数据 数据中台 云原生 数据

Vue 3自定义指令开发

葡萄城技术团队

阿里巴巴正式推出2021年金三银四1000道Java工程师面试题手册(含答案)

Java架构追梦

Java 阿里巴巴 面试 架构师 金三银四

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