Vercel Serverless Function
Vercel Serverless Function 是 Vercel 平台提供的无服务器函数(Serverless Function)服务。简单来说,它让你可以在 Vercel 上直接写后端代码(API 接口、数据处理等),而不需要自己搭建或维护服务器。
核心概念#
当你把代码部署到 Vercel 时,这些函数不会一直运行占用资源,而是按需执行:
- 有请求进来 → Vercel 自动启动一个临时容器运行你的代码
- 执行完毕返回结果 → 容器销毁,停止计费
- 下次请求再来 → 重复上述过程
典型使用场景#
| 场景 | 示例 |
|---|---|
| API 接口 | 处理前端表单提交、用户认证 |
| 数据处理 | 图片压缩、PDF 生成、数据转换 |
| 第三方集成 | 调用 Stripe 支付、发送邮件、连接数据库 |
| Webhook | 接收 GitHub、Slack 等平台的回调通知 |
技术特点#
- 多种运行时:支持 Node.js、Python、Go、Ruby 等
- 文件路由:在
api/目录下创建文件即可自动生成对应路由(如api/hello.js→/api/hello) - 自动扩缩容:流量大时自动增加实例,小时自动缩减,按执行时间和内存计费
- Edge Network 集成:函数可以部署在 Vercel 的全球边缘节点上,降低延迟
与常规部署的区别#
| 传统服务器 | Vercel Serverless Function | |
|---|---|---|
| 维护成本 | 需要自己管理服务器、更新系统 | 零运维,Vercel 全托管 |
| 计费方式 | 按租用时长(即使没流量也花钱) | 按实际执行时间和次数 |
| 冷启动 | 无(一直运行) | 有(首次请求可能稍慢) |
| 适用场景 | 长期运行的服务、WebSocket | 短时请求、API、事件驱动 |
简单示例#
在 Next.js 或纯 Vercel 项目中,创建一个文件 api/hello.js:
export default function handler(req, res) {
res.status(200).json({ message: 'Hello from Serverless!' });
}javascript部署后访问 https://你的域名/api/hello,就能看到返回的 JSON 数据。
一句话总结:Vercel Serverless Function 是一种”按需运行、用完即走”的后端代码执行方式,特别适合前端开发者快速搭建轻量级 API 和后端逻辑。