Skip to content
返回部署

环境变量和密钥

跨部署管理环境变量,正确作用域和安全。

边缘入门

为什么

正确的环境变量管理防止密钥泄露,并启用环境特定配置。Cloudflare 边缘网络覆盖 330+ 城市,全球 p95 延迟低于 50ms。

边缘函数相比源服务器将 TTFB 降低 60-80%,Akamai 报告 2024 年 40% 的企业使用边缘计算。

何时使用

任何有 API key、数据库 URL 或环境特定配置的项目。 需要数据库写入的有状态逻辑避免边缘函数 — 边缘运行时无持久连接池。需要长时间运行任务(>30s)或重 CPU 计算时跳过。

如何做

# Vercel ENV vars via CLI vercel env add DATABASE_URL production vercel env add STRIPE_SECRET_KEY production vercel env add NEXT_PUBLIC_API_URL preview production # .ENV 文件s (never 提交) .env.local # Local development .env.development # Development .env.production # Production # Next.js ENV var 访问 const dbUrl = process.env.DATABASE_URL; // Server-only const apiUrl = process.env.NEXT_PUBLIC_API_URL; // Client + server 4. 验证部署 — curl -I https://your-app.example.com 5. 监控日志 — 前 5 分钟检查错误 6. 需要时回滚 — 回退到上一版本

示例

# .ENV.示例 (提交ted) DATABASE_URL=postgresql://user:pass@host:5432/db STRIPE_SECRET_KEY=sk_live_xxx NEXT_PUBLIC_API_URL=https://api.example.com # 验证 in 生产 vercel env ls vercel env pull .env.vercel --environment=production

常见问题

  • ⚠缺少 NEXT_PUBLIC 前缀 — 客户端无法访问变量
  • ⚠密钥进入客户端包 — 切勿在客户端代码用无前缀变量
  • ⚠环境间配置漂移 — 使用基础设施即代码(Terraform/Pulumi)保持 dev/staging/prod 一致

最佳实践

  • ✓用 .env.example — 记录所需变量但不含值
  • ✓定期轮换密钥 — 用 vercel env rm 和 add
  • ✓设置健康检查和优雅关闭 — 处理 SIGTERM 以在退出前排空进行中的请求

常见问题解答