六维教程

EdgeOne Makers Functions 概览

静态站点能跑起来只是第一步,真正要做表单提交、接口代理、数据查询这些动态功能,就得靠 Serverless 函数。EdgeOne Makers 提供了两类函数能力: Edge Functions 跑在边缘节点上处理轻量逻辑,Cloud Functions 跑在中心机房处理重计算任务。搞懂两者的区别和适用场景,才能把函数放对地方。

Functions 是什么

简单说,Functions 就是你写的代码片段,不用自己管服务器,平台帮你跑起来。请求来了就执行,执行完就释放资源,按调用次数计费,没有请求就不花钱。

EdgeOne Makers 把函数分成两种类型。

对比维度 Edge Functions Cloud Functions
运行位置 全球边缘节点 中心机房
执行环境 轻量 V8 Isolates 完整运行时(Node.js/Python/Go)
冷启动速度 毫秒级 百毫秒到秒级
单次执行时长上限 几秒到几十秒 可以更长
支持的依赖 有限,体积小 可以装完整依赖包
典型用途 请求改写、鉴权、A/B 分流 复杂计算、文件处理、数据库操作

一句话总结: 轻量的、跟请求强相关的逻辑放 Edge Functions,重活累活放 Cloud Functions。

Edge Functions 和 Cloud Functions 怎么选

选错位置不是功能不能用,而是可能浪费钱或者拖慢速度。下面用几个典型场景帮你判断。

场景一: 改写请求头

你想给所有请求加一个安全头,或者根据用户地区返回不同内容。这种逻辑简单、每个请求都要走,放 Edge Functions 最合适,因为代码就在离用户最近的节点上执行,延迟最低。

场景二: 图片压缩或格式转换

用户请求一张大图,你要在服务端压缩或者转成 WebP 格式。这种操作吃 CPU 和时间,放边缘节点不现实,Cloud Functions 更合适,它有充足的计算资源。

场景三: 表单数据写入数据库

用户在页面提交了一个表单,你要把数据存到数据库。数据库通常在中心机房,边缘节点访问数据库绕路太远。Cloud Functions 和数据库在同一个网络环境里,延迟更低。

场景四: 接口鉴权

判断请求是否携带合法的 Token,不合法直接拒绝。这种逻辑每次请求都要跑,而且判断本身很快,放 Edge Functions 能在边缘直接拦截非法请求,节省后续资源。

汇总一下选择思路。

判断条件 选 Edge Functions 选 Cloud Functions
每个请求都要执行 不太适合
需要完整运行时和依赖 不需要 需要
对延迟敏感 非常敏感 可以接受一定延迟
需要访问数据库 不需要 需要
执行时间可能较长 不会 可能

使用场景总览

把 Edge Functions 和 Cloud Functions 配合起来用,基本能覆盖常见的后端需求。

Edge Functions 常用场景

  • 请求头改写,加安全头、去冗余头
  • 地理位置判断,按地区返回不同内容
  • A/B 测试分流
  • 接口鉴权和频率限制
  • URL 重写和重定向

Cloud Functions 常用场景

  • RESTful API 开发
  • 文件上传和处理
  • 数据库读写操作
  • 定时任务
  • 第三方服务集成

两者还可以串联使用: Edge Functions 做前置拦截和路由分发,Cloud Functions 做后面的业务逻辑。这种模式在中间件那篇会详细讲。

开发流程概览

不管用哪种函数,整体流程差不多。

编写函数代码
  ↓
本地调试
  ↓
部署到 EdgeOne
  ↓
绑定触发条件(路由、定时器等)
  ↓
线上运行

EdgeOne Makers 的控制台提供在线编辑器,小改动可以直接在浏览器里改。大一点的项目建议本地开发,用命令行工具部署。

速查卡片

要点 说明
Functions 是什么 不用管服务器的代码片段,按调用次数计费
两种类型 Edge Functions(边缘) 和 Cloud Functions(云端)
Edge Functions 特点 跑在边缘节点,毫秒级启动,适合轻量逻辑
Cloud Functions 特点 跑在中心机房,完整运行时,适合重计算
选 Edge 的信号 每个请求都跑、对延迟敏感、逻辑简单
选 Cloud 的信号 需要完整依赖、要访问数据库、执行时间长
两者可以串联 Edge 做前置拦截,Cloud 做业务逻辑
开发流程 编写代码、本地调试、部署、绑定触发条件、运行
上一篇
EdgeOne Makers 常见问题
下一篇
EdgeOne Makers Edge Functions