什么是 AWS Lambda?
AWS Lambda 是一项无服务器计算服务,使您无需预调配或管理服务器即可运行代码。Lambda 会自动管理底层基础设施,包括服务器维护、容量配置、扩缩和修补,从而让您可以专注于应用程序逻辑。
Lambda 提供了两个计算基元,分别针对不同的工作负载模式设计:
-
Lambda 函数:运行代码以响应事件或 API 调用,无需管理服务器。您只需编写处理程序函数,将其连接到触发器(API Gateway、Amazon S3、Amazon SQS、EventBridge 和 200 多种其他 AWS 服务),然后交由 Lambda 执行。每次调用都会在无共享状态的情况下独立运行,并根据需求水平扩缩。Lambda 负责管理执行环境、扩缩、路由和容错能力。
-
Lambda MicroVMs:隔离的计算环境,具有近乎即时的启动速度和最长 8 小时的状态保留时间。专为需要为每个单独用户或作业提供专用计算环境的工作负载而设计。Lambda 负责管理隔离、容量和联网。您的应用程序使用 Lambda MicroVMs API 和 HTTPS 端点将每个用户/作业连接到其计算环境。
有关定价信息,请参阅 AWS Lambda 定价
Lambda 函数和 Lambda MicroVMs 的比较
Lambda 函数和 Lambda MicroVMs 使用共同的无服务器基础设施:
-
无需管理服务器:AWS 负责管理底层基础设施、实例修补和容量。
-
按使用量计费:无需预先承诺。您只需为实际使用的资源付费。
-
托管式联网:两者都提供由服务托管的入站和出站网络访问。
-
Firecracker 虚拟化:工作负载之间进行虚拟机级别隔离。
虽然其基础相同,但服务于不同的使用案例:
| Lambda 函数 | Lambda MicroVMs | |
|---|---|---|
| 适用于 | 请求响应或事件驱动型工作负载(API、数据处理、自动化) | 运行用户或人工智能生成的不可信代码的持久性环境 |
| 编程模式 | 在支持的运行时中调用的函数处理程序 | 任何应用程序,可以运行自己的二进制文件、侦听端口、使用 Linux 操作系统功能 |
| Duration | 每次调用最长 15 分钟;使用 Lambda 持久性函数的多步骤工作流最长可持续一年时间 | 每个会话最长 8 小时;可以跨会话暂停和恢复 |
| 运行时环境 | 服务提供的语言运行时;支持客户提供的运行时 | 客户提供的 MicroVM 映像 |
| 入站联网 | 直接调用或将事件源与 AWS 服务集成;支持响应流式传输 | 使用 OSI 第 7 层协议对任何端口进行入站访问 |
| 并发 | 每个执行环境一次只能处理一个请求 | 每个 MicroVM 可以有多个并发连接 |
| 环境状态 | 可以重复使用执行环境(热启动),但不同调用可能不会保持相同状态 | 暂停时保留内存和磁盘状态;恢复时恢复 |
| 扩展 | 自动:Lambda 创建和销毁执行环境以响应流量 | 开发者控制:您可以通过 API 创建、暂停、恢复和终止 MicroVM |
| 生命周期 | 完全由 Lambda 托管 | 开发者控制;实现自动暂停-恢复的可选空闲策略 |
| 定价 | 按请求数 + 执行时间(GB 秒) | 按运行时的计算量(按秒)+ 暂停时的快照存储 |