Skip to content
返回云服务

Vercel 无服务器函数指南

在 Vercel 上构建和部署无服务器函数,支持 Edge Runtime、ISR 和 Next.js 应用自动扩展。

边缘计算进阶

为什么

Vercel 8 秒部署,全球边缘网络(19 区域),Next.js 零配置,免费 Hobby 套餐(100GB 带宽)。Edge Runtime 运行在 V8 隔离体(无冷启动)。

前端开发者转全栈的最佳 DX。

何时使用

选择 Vercel 用于 Next.js/Remit/Astro 应用、原型和想要零运维的团队。避免:长运行任务(Node >10 秒、Edge >30 秒)、自定义 Docker 或成本敏感的高流量应用(Pro $20/月 + 用量)。

如何做

1. 安装 CLI — npm i -g vercel,vercel login 2. 部署任意仓库 — vercel(自动检测 Next.js/Astro/Static,创建预览 URL) 3. Serverless 函数 — api/hello.ts 导出 default function handler(req, res) 4. Edge 函数 — export const config = { runtime: "edge" } 全球低延迟 5. ISR — getStaticProps 中 revalidate: 60,后台重新生成页面 6. 环境变量 — vercel env add DATABASE_URL,区分 dev/preview/production 7. 自定义域名 — vercel domains add example.com,Let's Encrypt 自动 HTTPS 8. 生产 — vercel --prod 或 git push 到 main(合并时自动部署)

示例

// api/users.ts — Node.js serverless 函数 import { db } from "../lib/db"; export default async function handler(req: VercelRequest, res: VercelResponse) { if (req.method !== "GET") { return res.status(405).json({ error: "方法不允许" }); } const users = await db.user.findMany({ take: 20 }); return res.status(200).json(users); } // api/geo.ts — Edge 函数(无冷启动,19 区域运行) export const config = { runtime: "edge" }; export default function handler(req: Request) { const country = req.headers.get("x-vercel-ip-country") || "unknown"; const city = req.headers.get("x-vercel-ip-city") || "unknown"; return Response.json({ country, city, message: `来自 ${city},${country} 的你好`, }); } // app/page.tsx — ISR(增量静态再生) async function getStaticProps() { const posts = await fetch("https://api.example.com/posts").then((r) => r.json()); return { props: { posts }, revalidate: 60 }; // 每 60 秒重新生成 }

常见问题

  • ⚠Hobby 函数超时 10 秒 — 升级 Pro 获 60 秒,或用 Edge Runtime(30 秒)
  • ⚠Node.js 运行时冷启动 — 首次请求 1-2 秒,用 Edge Runtime 消除
  • ⚠Body 大小限制 4.5MB — 大上传需直传 S3/R2,不经过函数
  • ⚠Hobby 100GB 带宽 — 病毒式流量快速耗尽配额,面板监控

最佳实践

  • ✓全球 API 用 Edge Runtime — 无冷启动,19 区域运行
  • ✓内容页面用 ISR 而非 SSR — 静态 + 后台再生 = 快 + 新鲜
  • ✓大上传流式传到 S3/R2 — 预签名 URL 绕过函数 body 限制
  • ✓用 Vercel Postgres/Redis — 连接池已处理,无冷启动 DB 问题

常见问题解答

什么是Vercel 无服务器函数指南?它解决什么问题?

在 Vercel 上构建和部署无服务器函数,支持 Edge Runtime、ISR 和 Next.js 应用自动扩展。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。

如何在 5 分钟内上手Vercel 无服务器函数指南?

两步即可跑通:① 安装 CLI — npm i -g vercel,vercel login;② 部署任意仓库 — vercel(自动检测 Next.js/Astro/Static,创建预览 URL)。建议先用免费套餐验证流程,再接入生产环境。

Vercel 无服务器函数指南 最容易踩的坑是什么?

最高频的问题是:Hobby 函数超时 10 秒 — 升级 Pro 获 60 秒,或用 Edge Runtime(30 秒)。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。

Vercel 无服务器函数指南 的最佳实践有哪些?

Vercel 无服务器函数指南 的最佳实践包括:全球 API 用 Edge Runtime — 无冷启动,19 区域运行;内容页面用 ISR 而非 SSR — 静态 + 后台再生 = 快 + 新鲜;大上传流式传到 S3/R2 — 预签名 URL 绕过函数 body 限制。其中首条「全球 API 用 Edge Runtime — 无冷启动,19 区域运行」应作为团队默认规范写入 IaC 模板。

Vercel 无服务器函数指南 如何控制成本与避免账单意外?

三招防超支:① 为所有资源打 env/team 标签并启用账单告警;② 用预算阈值触发 Slack/邮件通知;③ 定期用 Cost Explorer 审查闲置资源并清理。Vercel 无服务器函数指南 多数提供免费套餐,先在免费额度内验证再放量。