云计算与部署Serverless 与边缘

Serverless 与边缘

在 Lambda、Vercel、Cloud Run 与 Workers 上正确理解 Bun 的运行边界

最后更新于

平台矩阵

场景可用方案不要假设
AWS Lambda官方 Bun 指南:容器镜像 + Lambda Web Adapter普通 Bun.serve 镜像无需适配就能接 Lambda 事件
Google Cloud Run部署标准 Bun 容器并读取 PORT本地磁盘、单副本或常驻实例永远存在
Vercel FunctionsbunVersion 选择 Bun runtime,使用受支持框架Bun.serve、所有 Bun API 与 Node 原生包都已兼容
Cloudflare WorkersBun 安装依赖并运行 WranglerWorker 在线上由 Bun 执行;实际运行时是 workerd

Vercel

vercel.json
{
  "$schema": "https://openapi.vercel.sh/vercel.json",
  "bunVersion": "1.x"
}

Vercel 的 Bun runtime 已于 2026 年中脱离 Beta(以 Vercel 官方文档为准)。Next.js 项目使用 ISR 时需把 dev/build 脚本改为 bun run --bun next ...,但应用仍由 Next.js 的构建链处理。不要在 Vercel Function 中启动 Bun.serve。完整步骤见 部署到 Vercel

Cloudflare Workers

bun add -d wrangler
bunx wrangler dev
bunx wrangler deploy

这些命令使用 Bun 管理和启动工具;部署后的 Worker 运行在 workerd。共享代码优先使用 Web 标准 API,并针对 Workers 单独测试兼容性。

AI 流式请求

Serverless AI 端点同时受模型、SDK、Bun HTTP 服务和平台四层超时约束:

  1. AbortSignal 从客户端传到模型 SDK,断连后停止上游生成。
  2. 给整次请求、每一步工具调用和外部检索分别设置预算。
  3. 若直接使用 Bun.serve,默认 10 秒空闲超时可能截断慢流;只对确需长流的请求调整,并保留总超时。
  4. 在目标平台验证首字节时间、最长执行时间、响应流、代理缓冲和客户端重连。
  5. POST 重试要有幂等键;工具调用与计费写入必须能去重。

冷启动不是唯一指标

同时测量冷启动、热请求、首 token、完整响应、内存峰值和错误率。单个 hello-world 启动时间不能代表 AI 工作负载的成本与吞吐。

官方参考:Bun on LambdaBun on Cloud RunBun on VercelVercel Bun runtimeCloudflare Wrangler