找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

161

积分

0

好友

17

主题
发表于 前天 05:02 | 查看: 9| 回复: 0

近日,AWS 宣布其函数计算服务 Lambda 的 Rust 支持已从实验阶段升级为正式可用(Generally Available, GA)。开发者现在可以使用 Rust 构建无服务器应用,并享受 AWS 支持与 Lambda 可用性 SLA 的保障。

Rust 作为一种流行的编程语言,以其高性能、内存安全和出色的开发者体验而闻名。它不仅提供了与 C++ 相媲美的速度和内存效率,还具备了高级语言常见的可靠性。

这一公告在社区中引发了讨论。Serverless Hero Yan Cui 在 LinkedIn 上指出,由于 Rust 编译为原生机器码,且不依赖传统的托管执行运行时(如 Node.js 或 Python),因此其运行时性能显著提升。Benjamin Pyle 补充道:

官方标记的是 crate(库)。它处理与 Lambda API 的操作,并基于 Tower 构建。此外,还有用于处理 AWS 服务负载的 crate,以及一个抽象 HTTP 事件的 HTTP crate。

这一澄清至关重要,因为 GA 状态意味着构建 Rust Lambda 的核心开发库现已成为受支持的 AWS 产品,纳入完整的 Lambda SLA 和高级支持范围。

AWS 高级软件工程师兼运行时维护者 Jess Izen 在 LinkedIn 上表示:

看到这个最初由社区驱动的项目达到官方状态,令人兴奋。这将带来 SLA 和路线图支持,让开发者有信心在 Lambda 上使用 Rust 构建应用。

由于 Rust 编译为原生机器码,无需特定语言运行时,因此该运行时使用 Amazon Linux 2023(提供 .al2023 或 .al2)。开发者可以使用 lambda_runtime crate 处理 Lambda 事件,AWS 推荐使用 Cargo Lambda——一个第三方开源扩展,作为 cargo 命令行工具的补充,可简化 Rust Lambda 函数的构建和部署。

在 AWS Compute 博客文章中,作者解释说,开发者使用 cargo lambda build 命令构建 Lambda 函数。编译时,AWS Lambda 运行时逻辑(由 crate 提供)直接编译到生成的二进制文件中,该文件名为 bootstrap。然后,此 bootstrap 文件被打包到函数工件的 .zip 文件中。

当 Lambda 执行此二进制文件时,它会启动一个无限循环(Run 函数)。该循环轮询 Lambda 运行时 API 以接收调用请求。一旦收到请求,它会调用自定义处理函数(例如 function_handler)。函数代码执行后,响应被发送回 Lambda 运行时 API,后者将其转发给原始调用者。

尽管性能优势明显,但 Reddit 帖子中的社区反馈强调了使用官方 AWS SDK for Rust 时的一个显著权衡。一位用户指出,尽管运行时性能极快,但编译完整 AWS SDK 所需的时间仍然是一个重大障碍:

这很令人兴奋,但在 Rust AWS SDK 解决其编译时间问题之前,我仍不推荐使用。

此外,使用官方 SDK crate(通常包含大型依赖项,如用于加密的 aws-lc-rs)可能会显著增加最终二进制文件的大小,有时增加 10MB 或更多,从而影响部署速度。尽管 AWS 和社区正在探索解决方案(如延迟编译提示),但开发者应注意,使用完整 AWS SDK 会在 Rust 开发循环中引入相当大的摩擦。

最后,更多详细信息可在文档页面找到,且 Lambda 对 Rust 的支持已在所有 AWS 区域可用,包括 AWS GovCloud(美国)区域和中国区域。

您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区(YunPan.Plus) ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-1 12:48 , Processed in 0.051952 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 CloudStack.

快速回复 返回顶部 返回列表