写点什么

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

评论

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

客户案例| DataWorks x 婚礼纪:智能一站式数据开发治理平台让千万新人的幸福时刻“数智化”

阿里云大数据AI技术

人工智能 云计算 数据分析 #大数据 Dataworks

AI赋能教与学,南京财经大学刘培学老师讲述课程改革的完整路径

ModelWhale

人工智能教育 南京财经大学 课程改革

区块链DApp的开发技术方案

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

Web3钱包开发:一文带你弄清楚Web3钱包到底是什么?

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

简述大前端技术栈的网络原理

京东科技开发者

可视化开发引擎 iVX:重构数字化转型的新范式

代码制造者

鸿蒙 Ads Kit(广告服务)开发指南:流量变现与广告接入实践

哭着来笑着走天涯

鸿蒙 HarmonyOS 广告sdk HarmonyOS NEXT

博睿数据亮相2025深圳IT领袖大会暨深港澳CIO夏季论坛!端到端可观测方案赋能各行业数智化转型

博睿数据

在零售技术做AI的95后:我们这样搞定技术难题

京东科技开发者

深度实操:京东商品详情API接入全流程与技术要点剖析

tbapi

京东API 京东商品详情API 京东数据采集

揭秘 Databend:引领云原生存算分离架构的创新实践

Databend

深度剖析:AI Agent 落地困境,如何破局重生?

Techinsight

Disruptor—并发编程相关简介

不在线第一只蜗牛

Java

阿里云邀请您参加 2025 中国 Serverless 用户调查

阿里巴巴云原生

阿里云 Serverless 云原生

开发一个交易所大概需要多少成本

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

塑造未来财务规划的优先级框架和主要见解

智达方通

企业管理 全面预算管理 财务规划 滚动预测

Java的SPI机制详解

京东科技开发者

尾款拿不到,真正的问题不是留不留后门!

程序员郭顺发

(在线编辑DWG)Web Cad 二开实现粗糙度标注的方法

WEB CAD SDK

在线办公 在线设计 cad WEB CAD

日志采集 Agent 性能大比拼——LoongCollector 性能深度测评

阿里巴巴云原生

阿里云 云原生 可观测

2025 年超实用 AI 工具大盘点,你用过几个?

Techinsight

利用DeepSeek与Python自动生成测试用例!

电子尖叫食人鱼

Python DeepSeek

Tether抵制欧盟监管的背后逻辑:MiCA 法规的硬伤在哪

TechubNews

加密市场

Higress MCP Server 安全再升级:API 认证为 AI 连接保驾护航

阿里巴巴云原生

阿里云 云原生 Higress

公链开发全生态:技术架构、生态构建与未来图景

区块链软件开发推广运营

交易所开发 dapp开发 公链开发 代币开发 dapp开发链游开发

大神4000字带你深入Activiti流程引擎,Github标星66.3K!

程序员高级码农

Java 程序员 计算机

SpringBoot性能优化的12个小技巧

秃头小帅oi

你们的高防IP为啥这么贵?

网络安全服务

CDN 服务器 带宽 高防IP DDoS 攻击

AI技术在英语口语学习中的应用

北京木奇移动技术有限公司

软件外包公司 AI英语学习 AI技术应用

Redis 当中 Jedis 的详细刨析与使用

量贩潮汐·WholesaleTide

数据库 redis

NumPy用户手册

安信无限

Numpy 科学计算

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