写点什么

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:004941

评论

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

如何实现高效的动态鉴权

KaiwuDB

KaiwuDB 动态鉴权

微信安全基于 Flink 实时特征开发平台实践

Apache Flink

大数据 flink 实时计算

Coral Finance 将为 Zepoch 节点空投,Nautilus生态空投季开启

威廉META

AntDB数据库与东方通TongWeb完成兼容互认,共筑数字化底座核心能力

亚信AntDB数据库

数据库 AntDB 企业号 7 月 PK 榜

从可逆计算看DSL的设计要点

canonical

低代码 dsl 低代码平台 领域特定语言 模型驱动

Centos7安装Node.js详细教程。

百度搜索:蓝易云

node.js 云计算 Linux centos 运维

Golang微服框架Kratos与它的小伙伴系列 - ORM框架 - GORM

golang ORM gorm Kratos

低代码平台技术分享官丨系统集成系列之领域建模

inBuilder低代码平台

Spring AOP 中,切点有多少种定义方式?

江南一点雨

Java spring

Golang微服框架Kratos与它的小伙伴系列 - ORM框架 - Ent

golang ORM Kratos

云服务器挂载硬盘命令

百度搜索:蓝易云

云计算 Linux 运维 云服务器 硬盘

Cassandra SSTable 合并策略(一):STCS

冰心的小屋

Cassandra STCS Compaction

分布式事务两阶段提交和三阶段提交有什么区别?

王磊

java面试

Docker学习路线12:开发者体验

小万哥

Java c++ Go Docker 运维

Linux内核编译很简单,六步编译一个自己的内核

树上有只程序猿

Linux 编译

Golang微服务框架Kratos实现GraphQL服务

golang graphql Kratos

16款好用的白板笔记软件推荐,干货整理!

彭宏豪95

效率工具 软件推荐 科技 在线白板 Mac笔记软件

Coral Finance 将为 Zepoch 节点空投,Nautilus生态空投季开启

股市老人

Coral Finance 将为 Zepoch 节点空投,Nautilus生态空投季开启

鳄鱼视界

C++ 中的std::array实现编译器排序

梦笔生花

Golang微服务框架kratos实现Socket.IO服务

golang socket websocket Kratos

如何确定产品要做什么终端?

Bonaparte

产品 产品设计 产品终端

Dify.AI:简单易用的 LLMOps 平台,可视化创造和运营你的 AI 原生应用

Dify

AI LLMOps

Golang微服务框架kratos实现SignalR服务

golang SignalR Kratos

vhdns软件介绍与功能特性

新消费日报

oracle已有表的分表分区优化操作步骤(单表过大)

zhengzai7

oracle 表分区

百度智能云连拿四年第一,为什么要深耕AI公有云市场

脑极体

AI 大模型

热烈祝贺埃文科技荣获CCF第38届中国计算机应用大会计算机应用科学技术二等奖

郑州埃文科技

Golang微服务框架kratos实现SSE服务

golang websocket Kratos openai

指标让 AI 更懂业务|Kyligence Copilot 是如何做到的?

Kyligence

Kyligence Copilot 数智助理

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