写点什么

AWS Lambda 现可支持 Node.js 18 运行时

  • 2022-12-25
    北京
  • 本文字数:1528 字

    阅读完需:约 5 分钟

AWS Lambda现可支持Node.js 18运行时

近期,亚马逊云科技宣布Node.js版本18支持其函数即服务(FaaS)AWS Lambda,并处于活跃LTS状态(可供一般使用)。


开发者目前可使用 Node.js 18 中的新语言功能编写 AWS Lambda 函数,比如类字段和私有类方法的性能优化、JSON 导入断言,以及包括 Fetch API、Test Runner模块Web Streams API在内的实验性功能。


全局 Fetch API 在 Node.js 18 中默认可用,这一实验性功能中的 fetch 函数取代了 fetch polyfills 及其他三方 HTTP:

// index.mjs 
export const handler = async(event) => { const res = await fetch('https://nodejs.org/api/documentation.json'); if (res.ok) { const data = await res.json(); console.log(data); }
const response = { statusCode: 200, body: JSON.stringify('Hello from Lambda!'), }; return response;};
复制代码


所有实验性功能都可通过 NODE_OPTIONS 环境变量启用或禁用。


AWS Lambda 支持目前 Node.js 的长期支持版本(LTS),意味着使用新版本的开发者在创建或更新函数时需要指定 nodejs 18.x 的运行时参数值,或者使用有运行时管理的基础镜像


除此之外,运行在基于Arm AWS Graviton2或基于 x86 的处理器的函数均支持 Node.js 18 的运行时。


AWS Lambda 所支持的上一版本Node.js 16自 2022 年十月中旬起便一直处于维护 LTS 状态,并将在一年后迎来生命周期的终结。



来源:https://github.com/nodejs/release#release-schedule


Lambda 的 Node.js 运行时在 Node.js 16 及之前版本中,使用的都是 JavaScript 版本 2 的 AWS SDK,目前后者已随着对 Node.js 18 的升级更新至 JavaScript 版本 3 的 AWS SDK。因此,公司推荐已升级至 Node.js 18 的开发者将函数代码同步更新至使用 SDK v3,或者也可以通过部署 SDK v2 及其功能代码,以在不更新现有代码的情况下使用 Node.js 18 的运行时。


AppDev 的云计算顾问 Suraj Tripathi 在一篇 AWS 计算的博文中解释道:


与第二版相比,第三版的 SDK 为 JavaScript 带来了不少优势。更重要的是,它是模块化的,也就是说代码只需加载需要的模块。如果你选择将 SDK 与函数代码一同部署,而非是使用 Lambda 运行时的内置版本,那么模块化还将缩减你的函数大小。


此外,bootstrapped 募捐会的 CTO,Steve Sanders发推表示:


AWS Lambda 先已支持 Node 18!

其中包括 AWS JavaScript SDK 的 v3 版本,如果你有用到它的话那这可是个大好消息,部署中少了一样需要捆绑的东西。


开发者在使用 v3 的 SDK 时,可以只导入需要的模块,如 ListBucketsCommand 或是 S3Client 这种服务客户端:


import { S3Client, ListBucketsCommand } from "@aws-sdk/client-s3";
复制代码


Node.js 运行时中零一变动是,通过 NODE_PATH 环境变量增加了对 ES 模块解析的支持。Lambda 的运行时会在加载 ES 模块时,搜索所有 NODE_PATH 目录下的文件夹,让 AWS SDK 作为 ES 模块,或从 Lambda 层加载 ES 模块更加方便。


社区和开发者们纷纷欢迎 AWS Lambda 支持 Node.js 18 的运行时。Allianz 贸易公司的首席软件工程师Jean Burellier发推表示:


恭喜 @AWS lambda 团队推出 #NodeJS 18,比其他版本都要快。我还以为得再等上几个月。


同样,红迪评论串中也有人写道:


点赞!

推出速度比 Node 16 要快!


不过也有声音希望 Lambda 能支持较新版本的 Python。AWS 英雄Efi Merdler-Kravitz发推表示:


@jbesw 什么时候才能看到对 Python 11 的支持?

Node 似乎抢了所有风头。


最后,AWS Lambda文档中的 Node.js 的编程模型提供了更多关于如何在 Node.js 18 中编写函数的细节。此外,开发者还可以在审查代码兼容性问题后,通过修改运行时配置至 nodejs16.x,将其现有的 Node.js 函数迁移到新的运行时。


原文链接:

AWS Lambda Now Has Support for Node.js 18 Runtime


相关阅读:

2022 re:Invent InfoQ 特别报道

AWS数据库迁移服务:将Oracle数据库迁移到MySQL

2022-12-25 08:004979

评论

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

程序员成长第三篇:好的代码和好的工程师

石云升

28天写作 2月春节不断更 工程师等级

RocketMQ-Spring 毕业两周年,为什么能成为 Spring 生态中最受欢迎的 messaging 实现?

阿里巴巴云原生

Docker 容器 微服务 云原生 API

信任从对自己诚实开始

Justin

心理学 信任 28天写作

为您收录的操作系统系列 - 进程管理(中篇)

鲁米

操作系统 进程 同步

机器学习笔记之:Addition and Scalar Multiplication

Nydia

Mybatis【18】-- Mybatis自关联多对一查询方式

秦怀杂货店

mybatis

如果生命的长度可以被改写「幻想短篇 27/28」

道伟

28天写作

让我们与内心聊聊,寻找一段思考发展之路。

叶小鍵

一个合格的初级前端工程师需要掌握的模块笔记

我是哪吒

程序员 面试 Vue 大前端 2月春节不断更

Spark Shuffle 内部机制(一)

hanke

大数据 spark 开源

统一数据管理工具——CloudQuery v1.3.3 上线!

BinTools图尔兹

数据库 运维 开发工具 dba 数据库管理工具

区块链+电力,又擦出什么新火花?

CECBC

区块链

你会在车里唱K吗? (28天写作 Day27/28)

mtfelix

28天写作 智能汽车 MaaS 出行方案

Kubernetes安装篇(下):基于Kubeadm方式的集群部署

xcbeyond

Kubernetes kubeadm 部署 28天写作 Kubernetes从入门到精通

探索语言交互技术在政务数字化的应用

华为云开发者联盟

语音 政务 语言交互 VUI G2c

Elasticsearch+Fluentd+Kafka搭建日志系统

远鹏

kafka ELK EFK Fluentd 日志系统

5步教你将MRS数据导入DWS

华为云开发者联盟

数据 MRS GaussDB 集群 DWS

区块链终将彻底改变医疗行业,但哪些因素制约当前的采用?

CECBC

区块链

Webpack | 如何提升构建速度,进行体积优化?

梁龙先森

大前端 webpack 28天写作 2月春节不断更

驱动力读书笔记之三

张老蔫

28天写作

速看!教育上云 让学习战“疫”两不误

教育云

面试官:请讲一下Redis主从复制的功能及实现原理

华为云开发者联盟

redis 数据 节点 redis哨兵 主从复制

Elasticsearch Bulk API 奇特的 JSON 格式

escray

七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

SpringIOC的注解开发

小马哥

Java spring 七日更

回顾与总结 | 视频号28天(28)

赵新龙

28天写作

十倍效率背后的管理逻辑

Ian哥

28天写作

【JS】异常处理

德育处主任

JavaScript 大前端 js 28天写作 2月春节不断更

口碑销量双爆的数据分析丛书再添新成员!

博文视点Broadview

Spring Boot Admin 集成诊断利器 Arthas 实践

阿里巴巴云原生

Java Docker 容器 云原生 Arthas

人员培养,不是捷径的捷径(下)

一笑

管理 人才培养 28天写作

Kafka架构介绍

架构精进之路

kafka 七日更 28天写作 2月春节不断更

AWS Lambda现可支持Node.js 18运行时_语言 & 开发_Steef-Jan Wiggers_InfoQ精选文章