函数类型
CloudBase 云函数提供两种类型,分别适用于不同的业务场景。选择合适的函数类型对性能、开发效率和成本都有重要影响。
本质区别
| 对比维度 | 普通云函数 | HTTP 云函数 |
|---|---|---|
| 设计理念 | 事件驱动架构 (EDA) | Web 服务模式 (Serverless Web) |
| 触发方式 | 事件触发(SDK、定时器、云产品事件) | HTTP 请求直接触发 |
| 入参格式 | 固定的 event 和 context 对象 | 原生 HTTP Request/Response |
| 并发模式 | 单实例单请求 | 单实例多并发 |
| 端口监听 | 不需要 | 必须监听 9000 端口 |
| 执行模式 | 支持同步/异步调用 | 仅同步调用 |
| 框架支持 | 普通函数代码 | Express、Koa、Next.js 等 Web 框架 |
| 适用场景 | 后台任务、数据处理、云产品集成 | Web 网站、API 服务、传统框架迁移 |
如何选择?
选择「普通云函数」,如果你的场景是:
✅ 后台数据处理
- 图片/视频处理、格式转换
- 日志分析、数据清洗
- 批量数据处理
示例场景:用户上传图片到云存储,自动触发云函数进行压缩和水印处理。
// 普通云函数 - 响应 COS 上传事件
exports.main = async (event, context) => {
// event 包含触发事件的数据
const { fileID } = event;
// 处理业务逻辑
const result = await processImage(fileID);
// 返回 JSON 格式结果
return {
code: 0,
data: result
};
};
✅ 定时任务
- 定期数据备份
- 定时报表生成
- 定时数据同步
示例场景:每天凌晨 2 点自动生成前一天的业务报表并发送邮件。
✅ 云产品集成
- 响应云存储(COS)文件上传事件
- 消费消息队列(CKafka)消息
- 数据库触发器
示例场景:监听数据库变更,当用户注册时自动发送欢迎邮件。