函数就是一个小型后端入口
可以把它理解成一个从服务器里拆出来的路由处理器或任务。你上传代码,当 HTTP 请求、队列消息、数据库事件、定时任务或 webhook 到来时,平台负责运行它。
无服务器函数不是一台更小的服务器。它是一段短生命周期后端代码,只在某件事发生时运行:请求、webhook、队列消息、定时任务、文件上传或数据库事件。对全栈开发者来说,最好把它理解成不用全天运行的 route handler、任务 worker 和系统集成胶水层。
函数适合短时间、事件触发的工作。
不要把它当成迷你常驻服务器。
状态应放在数据库、队列、KV 或对象存储。
可以把它理解成一个从服务器里拆出来的路由处理器或任务。你上传代码,当 HTTP 请求、队列消息、数据库事件、定时任务或 webhook 到来时,平台负责运行它。
传统服务器一直开着;函数在需要时启动,短暂运行,然后消失。这就是低流量自动化和 API 在免费层里很划算的原因。
不要期待长期内存、本地磁盘、后台守护进程或稳定 TCP 连接。函数最适合每次调用都能独立完成的任务。
边缘函数靠近用户,适合快速请求改写、鉴权检查和轻量 API。区域型云函数更适合较重任务、系统集成和后端事件。
接收 Stripe、GitHub、Slack、Notion 或支付服务商事件,不需要整天开着一台服务器。
给静态托管站点加联系表单、邮件订阅、搜索代理、签名上传、AI 调用和数据库写入。
按计划运行 sitemap 刷新、缓存预热、报表邮件、数据库清理、额度检查和轻量监控。
在请求到达源站前验证 JWT、重写 URL、路由流量、补充 headers、拦截异常请求或适配 API。
把存储事件接到图片处理,把队列接到邮件发送,把数据库变更接到通知,把第三方 API 接到内部流程。
适合短时 AI 审核、embedding 调用、PDF 解析、元数据提取和一次性转换,前提是要尊重超时和成本上限。
按触发方式、运行时限制,以及函数与前端、数据库、用户之间的位置来选择。
适合请求中间件、边缘 API、重定向、轻量鉴权和贴近 CDN 的逻辑,每日请求额度也很慷慨。
队列、存储事件、定时任务、API Gateway 和后端自动化生态最强,但配置复杂度也更高。
当应用已经使用 Firebase Auth、Firestore、Storage 或 FCM,并需要事件驱动后端胶水时最合适。
适合表单、小 API 和贴近前端的接口,但商业政策、超时和额度规则很重要。
表格用于快速查看额度。表格外的内容解释这些额度在真实全栈架构里到底意味着什么。
| 提供商 | 免费存储 | 月流量 | 规格 / 算力 | 连接限制 | 关键限制 | 操作 |
|---|---|---|---|---|---|---|
Cloudflare WorkersV8 Isolate / Edge | 每天 10 万请求 | 入站流量不限量 | 每次请求最大 10ms CPU 时间,运行在全球边缘网络 | 自动扩缩容 | 10ms CPU 为硬限制;重算法任务容易触顶 | 访问官网 ↗ |
AWS LambdaFaaS / 事件驱动 | 每月 100 万请求 | 每月免费 40 万 GB-Seconds | 支持 x86 和 ARM64(Graviton2) | 自动扩缩容 | 低频调用时会有冷启动延迟 | 访问官网 ↗ |
Microsoft AzureAzure Functions | 每月 100 万请求 | 40 万 GB-Seconds(Consumption 计划) | 依赖配套存储账号,可能产生少量费用 | 自动扩缩容 | Linux v3 运行时已到生命周期末期,需使用 v4 架构 | 访问官网 ↗ |
Cloud Functions for Firebase事件驱动 / 无服务器 | 内置免费额度 | 可由 Firebase、HTTPS、Admin SDK 和 Cloud Scheduler 触发 | 托管的 JavaScript、TypeScript、Python 函数,支持自动扩容并深度集成 Firebase / Google Cloud | 适合想零运维的事件驱动应用后端 | 超出免费额度后必须启用 Blaze 按量计费,并非永久免费生产环境 | 访问官网 ↗ |
Alibaba Cloud(Aliyun)Function Compute | 每月 100 万次调用 | 免费 40 万 CU-Seconds | GPU / AI 推理扩缩容能力较强 | 自动扩缩容 | 遭遇大规模攻击时存在明显账单突增风险 | 访问官网 ↗ |
阿里云中国Function Compute | 仅限 3 个月免费试用 | 100 万次调用 / 40 万 GB-Secs(重置 3 个周期) | 支持 GPU 加速运行时优化 | 自动扩缩容 | 并非永久免费;3 个月后会自动切换为按量计费 | 访问官网 ↗ |
Tencent Cloud(SCF)Cloud Function | 3 个月免费试用 | 100 万 GBs + 2GB 出站(试用期) | 3 个月后转为付费订阅包 | 自动扩缩容 | 并非永久免费;试用后需购买最低月包 | 访问官网 ↗ |
腾讯云中国Cloud Function(SCF) | 仅限 3 个月免费试用 | 前 3 个月 100 万次调用 / 100 万 GBs / 2GB 出站 | 试用后需购买最低订阅包(约 9.9 元/月) | 自动扩缩容 | 3 个月后无免费层,之后会长期收取最低订阅费用 | 访问官网 ↗ |
Vercel FunctionsNext.js API | 每天 5 万请求 | 共享 100GB 套餐流量 | 默认 1024MB 内存 | 自动扩缩容 | 最长 10 秒超时;Hobby 套餐对商业用途限制严格 | 访问官网 ↗ |
Netlify FunctionsJamstack API | 每月 12.5 万请求 | 100 小时计算时长上限 | 底层封装自 AWS Lambda | 自动扩缩容 | 按月重置;额度耗尽后站点会直接报 502 | 访问官网 ↗ |
HTTP 请求、定时任务、队列消息、文件上传、数据库事件和认证回调是不同形态。选择天然支持你触发方式的平台。
10 秒 API route、15 分钟 Lambda 任务、10ms CPU 边缘 worker 是完全不同的工具。超时和 CPU 形态会决定架构。
状态应该放在数据库、队列、对象存储、KV 或 durable object 里。函数里的本地内存和本地文件都应该视为可丢弃。
函数默认会自动扩缩容。公开到互联网前,应加入限流、鉴权、预算告警、幂等和重试控制。
公开接口会因流量、机器人、重试或攻击自动扩容。免费层很有用,但缺少限流时,函数可能变成付费流量放大器。
冷启动对定时任务和异步任务没太大问题,但对登录流程、支付回调、聊天命令和首屏 API 调用很痛。
大量并发函数实例可能打开过多数据库连接。应使用连接池、HTTP 数据库 API、队列或服务商专用 serverless driver。
事件系统会重试失败函数。如果没有幂等键,一次支付、邮件、webhook 或数据库更新可能执行多次。
Pages 托管前端,Workers 处理边缘中间件和轻量 API,Supabase 保存持久 Postgres/Auth 状态。
最经典的入门场景:静态托管负责站点,函数校验输入、发送邮件,并写入一条小记录。
适合图片处理、文档解析、报表生成和 webhook 分发的可靠后台模式。
它们可以处理 webhook、小 API、表单提交、定时任务、鉴权检查、文件处理事件、队列消费、AI API 调用,以及云服务之间的胶水代码。最适合短时间、事件触发的工作。
长时间运行服务、稳定 WebSocket 服务器、重 CPU 任务、有状态进程、本地磁盘负载,以及不能接受冷启动或重试的系统,不适合用函数。
有重叠,但边缘函数更强调靠近用户运行,运行时限制通常更紧。区域型无服务器函数通常支持更重的运行时、更长执行时间和更深云集成。
可以替代后端的一部分:API 路由、webhook、任务和集成代码。但不能替代持久状态、数据库设计、队列、认证策略和可观测性。
边缘中间件和轻量 API 可以先试 Cloudflare Workers;事件驱动云自动化可以试 AWS Lambda;函数贴近前端项目时,可以试 Vercel 或 Netlify Functions。