AWS 宣布推出 AWS Lambda Web Functions,这是 Lambda 中的一种新运行方式,支持直接运行 Web 应用和标准 HTTP 服务器,而无需重写代码以适配传统的事件处理器模型。开发者可以通过一条命令部署使用 Express、Hono、Fastify 或 Next.js 构建的应用,也可以部署任何 Node.js 框架应用,无需专用适配器或额外的基础设施管理。
该服务面向 Web 应用、API、服务端渲染以及处理并发请求和高 I/O 处理负载的交互式 HTTP 工作负载。
Lambda 内部的不同运行模型
AWS 现在在 Lambda 中提供三种不同的运行模型,这些模型均基于 Firecracker 隔离技术。Event Functions 仍适用于事件处理、消息消费以及由 AWS 服务产生的调用,因为处理器会接收单个事件,并按照传统模型返回响应。
Web Functions 则采用原生 HTTP 模型,由应用监听端口并处理标准请求。单个执行环境最多可以处理 128 个并发请求。第三种模型 Lambda MicroVMs 提供隔离环境、持久状态以及由客户管理的生命周期,用于运行不受信任的代码或用户生成的代码。
对开发者而言实际发生了哪些变化?
AWS 表示,Web Functions 减少了为在全球范围内分发 Web 应用而组合多个组件的需求。该服务负责扩展、跨区域复制以及基于延迟的路由,而代码则更接近开发者在本地运行的 HTTP 服务器。
Web Functions 按处理器使用时间计费,而内存则按执行环境存在的整个时长计费。因此,应用等待数据库查询或 API 调用所花费的时间只会消耗少量处理器时间,这种模式可能适合高度依赖 I/O 的工作负载,例如服务端渲染、API 以及流式传输令牌的 AI 推理端点。
这并不意味着每个应用的成本都会自动降低;实际结果取决于使用模式、环境持续时间、内存消耗以及请求量。
部署、分发与版本
AWS CLI 使用类似 aws lambda-web deploy 的命令来打包代码、创建 Web Function、发布首个修订版本并关联 HTTPS 端点。应用可以部署到多个区域,例如 us-east-1、eu-west-1 和 ap-northeast-1,由 Lambda 通过单一全球地址,根据尽力而为的最低响应延迟,将请求路由到响应延迟最低的区域。
该服务将每个版本视为不可变的代码快照。端点还支持在不同版本之间分配流量,包括 canary 渐进式发布,例如将 90% 的请求指向当前版本,10% 的请求指向新版本。
与 CloudFront 的集成及初始可用性
Web Function 端点可以作为 Amazon CloudFront 的源,从而将静态资源存储在网络中,同时把动态请求发送到 Web Function。AWS 还支持将 CloudFront origin access control 关联到该端点,使其仅允许指定分发调用,并避免暴露端点或在应用内部添加自定义授权机制。
该服务发布时已在 US East (N. Virginia)、US East (Ohio)、US West (Oregon)、Asia Pacific (Tokyo) 和 Europe (Ireland) 提供。初期使用 Arm64 上的 Node.js 24(nodejs24.x),并支持连接到 Amazon VPC,以访问位于私有虚拟网络中的资源。