主流云厂商配额模型对比:AWS Lambda、阿里云函数计算、腾讯云 SCF
不同云厂商对 Serverless 函数的资源管控方式各有侧重,但核心目标一致:在保障多租户隔离的同时,为用户提供可预测的执行环境。本章从配额维度、并发模型、弹性策略三个层面,对比 AWS Lambda、阿里云函数计算(FC)和腾讯云 SCF 的配额体系。
2.1 配额维度总览
三家厂商的配额体系均围绕并发执行数、调用次数、资源使用量和部署限制四大维度展开,但具体粒度与默认值存在显著差异。
| 配额维度 | AWS Lambda | 阿里云函数计算 (FC) | 腾讯云 SCF |
|---|---|---|---|
| 并发执行数 | 账户级:1000(可提额) 函数级预留:按需配置 |
账户级:100(默认) 服务级:无单独限制 函数级预留:按需配置 |
账户级:128(默认) 函数级预留:按需配置 |
| 调用次数 | 无硬性上限(按调用计费) | 无硬性上限(按调用计费) | 无硬性上限(按调用计费) |
| 资源使用量 | 内存:128MB – 10,240MB 超时:15 分钟 |
内存:128MB – 32,768MB 超时:24 小时(HTTP 触发器) |
内存:64MB – 3,072MB 超时:900 秒(15 分钟) |
| 部署限制 | 代码包:50MB(压缩)/ 250MB(解压) 层:5 层 |
代码包:100MB(压缩) 层:无单独限制 |
代码包:500MB(压缩) 层:5 层 |
| 弹性上限 | 突发并发:1000 – 3000(几分钟内) | 突发并发:默认 100,可提额至 500+ | 突发并发:默认 128,可提额至 1000+ |
关键发现:阿里云 FC 在内存上限和超时时间上最为宽松,适合长时间运行的任务;腾讯云 SCF 的代码包上限最大,适合大型依赖场景;AWS Lambda 的并发配额默认最高,但提额流程相对成熟。
2.2 并发模型对比
并发模型是配额体系的核心,决定了函数在流量突增时的行为。三家厂商均采用预留并发 + 按需弹性的双层模型,但实现细节不同。
2.3 弹性策略与限流行为
当请求量超过账户级并发上限时,三家厂商的处理方式略有不同,直接影响业务可用性。
- AWS Lambda:超出并发配额时返回 HTTP 429 (TooManyRequestsException)。预留并发函数不受账户级限制影响,但预留配额本身不可超用。突发并发在几分钟内从 1000 提升至 3000,适用于短时流量尖峰。
- 阿里云 FC:超出按量实例上限时,新请求进入排队队列(默认队列长度 1000),超时后丢弃。预留实例始终可用,不受按量配额影响。支持设置最大实例数防止资源过度消耗。
- 腾讯云 SCF:超出按量并发上限时直接返回 429。预置并发实例优先处理请求,剩余按量实例弹性伸缩。支持版本别名独立配置并发,实现灰度发布时的流量控制。
实践建议:对于核心业务函数,始终配置预留/预置并发,避免因账户级配额共享导致关键链路被非核心函数抢占。同时设置告警阈值(如并发使用率达到 80%)提前扩容。
2.4 配额管理操作对比
三家厂商均提供控制台、CLI 和 SDK 进行配额管理,但操作路径和命令格式存在差异。
| 操作场景 | AWS Lambda (AWS CLI) | 阿里云 FC (fcli / SDK) | 腾讯云 SCF (SCF CLI) |
|---|---|---|---|
| 查看账户并发 | aws lambda get-account-settings |
fcli function get --region cn-hangzhou |
scf list-function |
| 设置预留并发 | aws lambda put-function-concurrency --function-name myFunc --reserved-concurrent-executions 100 |
fcli function put --function-name myFunc --instance-lifecycle-config '{"reserved":100}' |
scf put-reserved-concurrency --function-name myFunc --reserved-memory 100 |
| 设置按量上限 | aws lambda put-function-concurrency --function-name myFunc --reserved-concurrent-executions 0(关闭预留) |
fcli function put --function-name myFunc --instance-lifecycle-config '{"max":200}' |
scf put-function-concurrency --function-name myFunc --max-concurrency 200 |
| 提额申请 | 控制台 → Service Quotas → 请求增加 | 工单系统 → 提交配额提升申请 | 控制台 → 配额管理 → 申请提升 |
注意:阿里云 FC 的预留实例和按量实例上限是独立配置的,预留实例不计入按量配额。腾讯云 SCF 的预置并发需要额外付费,即使没有请求也会产生费用。AWS Lambda 的预留并发不额外收费,但会占用账户级配额。
2.5 配额体系架构总结
三家厂商的配额体系在宏观上遵循相似的账户级 → 函数级 → 实例级三层模型,但在弹性粒度、计费方式和限流行为上各有特色。