用途:指导在 EdgeOne Pages 上开发全栈功能,包括 Edge Functions、Cloud Functions(Node.js / Go / Python 运行时)、Middleware 以及 KV 边缘存储,适合构建 API、无服务器函数与后端逻辑。
主要能力与选型:按需求选择运行时而不要猜测。请求拦截、重定向、重写、鉴权或 A/B 测试用 Middleware;无需 npm 的轻量低延迟 API 用 Edge Functions;需要 KV 持久化时用 Edge Functions + KV(需先在控制台启用 KV);需要 npm 包、数据库或 WebSocket 的复杂后端用 Cloud Functions(Node.js);高性能 API 可用 Go(Gin / Echo / Chi / Fiber);Python 可用 Flask / FastAPI / Django / Sanic;纯静态站点无需函数。
关键限制:Edge Functions 运行在 V8 而非 Node.js,不能用 Node 内置模块或 npm 包,最大代码 5 MB、请求体 1 MB、CPU 200 ms,支持 KV,但不支持 WebSocket。Cloud Functions 支持 Node.js、Go、Python,最大代码 128 MB、请求体 6 MB、墙钟时间 120 s,不支持 KV;仅 Node.js 支持 WebSocket。中间件只做轻量请求拦截,禁止重计算或数据库调用。Next.js / Nuxt 等项目应使用框架自身的中间件与 API 路由,而非平台的 middleware.js。
使用方式:函数文件放在 cloud-functions/ 目录,平台按扩展名识别语言(.js/.ts、.go、.py)。本地开发统一使用 edgeone pages dev(端口 8088),不要另起函数开发服务器,也不要将其配置为 edgeone.json 的 devCommand 或 package.json 的 dev 脚本,以免递归。执行 edgeone 命令前需设置 export PAGES_SOURCE=skills。初始化用 edgeone pages init,关联项目用 edgeone pages link,环境变量用 edgeone pages env pull,函数内通过 context.env.KEY(Node.js)、os.Getenv("KEY")(Go)、os.environ.get("KEY")(Python)读取。
不适用范围:部署请使用 edgeone-pages-deploy 技能;非 EdgeOne Pages 项目中的通用框架开发,以及 Cloudflare Workers、Vercel Functions 等其他平台不在本技能覆盖内。更多细节与代码模式需参考各 reference 文件,本资料未提供具体价格与收费信息。