该技能是一份 Cloudflare Workers 迁移指南,用于将已有应用从 AWS Lambda、Vercel、Express 和 Node.js 迁移到 Cloudflare Workers。
用途 帮助开发者把现有应用或 Serverless 函数迁移到边缘环境,覆盖从不同平台迁往 Workers 的常见路径。
迁移决策树 按迁移来源给出方向:从 AWS Lambda 迁移时,Node.js handler 可采用 Lambda adapter 模式,Python 可考虑 Python Workers,容器或自定义运行时可能需要重写;从 Vercel/Next.js 迁移时,API routes 借助 adapter 只需少量改动,完整 Next.js 应用使用 OpenNext adapter,中间件有直接对应的 Workers 实现;从 Express/Node.js 迁移时,简单 API 可用 Hono(API 类似),复杂中间件需逐步迁移,大量使用 node: 时依赖兼容层;从其他边缘平台(Deno Deploy、Fastly)迁移时,若使用标准 Web API 改动很小,平台特有功能则需针对性重写。
平台对比 内容以表格形式对比 Workers、Lambda、Vercel、Express 在冷启动(约 0ms、100-500ms、10-100ms、不适用)、CPU 限制(50ms/10ms、15 分钟、10s、无)、内存(128MB、10GB、1GB、跟随系统)、最大响应(6MB,流式不限、6MB、4.5MB、无)、全球边缘(300+ PoPs、区域、约 20 PoPs、手动)、Node.js API(部分、完整、完整、完整)等维度的差异。
常见迁移错误 列出多类典型问题及解决方向:fs is not defined(改用 KV/R2 存储)、Buffer is not defined(从 node:buffer 导入)、process.env undefined(改用 env 参数)、setTimeout 未返回(改用 ctx.waitUntil())、require() not found(改为 ESM import)、CPU 时间超限(分块或使用 DO)、body already consumed(读取前克隆)、Headers 不可迭代(使用 Headers 构造器)、crypto.randomBytes(改用 crypto.getRandomValues)、Cannot find module(检查 Workers 兼容性)等。
快速迁移模式 提供代码改写示例:AWS Lambda handler 的 event/context 回调写法改为 fetch(request, env) 返回 Response;Express 中间件改为 Hono 中间件(使用 c.req.header 与 c.json);环境变量从 process.env 改为通过 env 参数访问。
Node.js 兼容性 通过兼容标志启用。在 wrangler.jsonc 中设置 compatibility_flags 为 ["nodejs_compat_v2"] 并配置 compatibility_date。nodejs_compat_v2 下可用 crypto(多数方法)、buffer(Buffer 类)、util(promisify、types)、stream(Readable、Writable)、events(EventEmitter)、path(全部方法)、string_decoder、assert;不支持 fs(改用 R2/KV)、child_process、cluster、dgram、net(改用 fetch/WebSocket)、tls(由平台处理)。
参考文档加载时机 references/lambda-migration.md 用于迁移 AWS Lambda 函数;references/vercel-migration.md 用于从 Vercel/Next.js 迁移;references/express-migration.md 用于迁移 Express/Node.js 应用;references/node-compatibility.md 用于处理 Node.js API 兼容问题。
迁移检查清单 包括分析依赖(检查不支持的 Node.js API)、转换为 ESM(把 require() 替换为 import)、更新环境变量访问(用 env 参数替代 process.env)、替换文件系统(用 R2/KV 存储)、处理异步(用 ctx.waitUntil() 执行后台任务)、本地测试(用 wrangler dev 验证)、性能测试(确保不超过 CPU 限制)。
相关技能 workers-runtime-apis(Workers 可用 API)、workers-performance(优化技巧)、cloudflare-worker-base(Workers 基础设置)。
适用场景与限制 适用于从上述平台向 Cloudflare Workers 迁移的代码改写与兼容性排查。资料未提供具体收费、价格信息,也未提供未在文中列出的功能或步骤。