云函数:Serverless 后端逻辑核心 本章为云函数专题的支柱页,带你从概念走向可运行的后端逻辑。 章节摘要:云函数是云开发 CloudBase 中运行后端代码的计算单元,无需管理服务器即可响应请求、定时任务或事件触发。它把「写业务逻辑」从「管服务器」中解放出来,是 Serverless 理念最直接的体现。本章围绕云函数的运行模型与触发方式展开,进一步说明如何编写与组织函数代码、如何利用定时与 HTTP 两种典型触发入口,以及云函数如何调用数据库、存储与登录态等其他云端资源。 学习目标 理解云函数的事件驱动模型与常见触发方式 掌握函数编写、依赖组织与无状态设计的基本思路 能通过定时触发与 HTTP 触发两种入口暴露能力 理解云函数调用云端其他资源的协作关系 本章小节关系:第 2.
本章为云函数专题的支柱页,带你从概念走向可运行的后端逻辑。
章节摘要:云函数是云开发 CloudBase 中运行后端代码的计算单元,无需管理服务器即可响应请求、定时任务或事件触发。它把「写业务逻辑」从「管服务器」中解放出来,是 Serverless 理念最直接的体现。本章围绕云函数的运行模型与触发方式展开,进一步说明如何编写与组织函数代码、如何利用定时与 HTTP 两种典型触发入口,以及云函数如何调用数据库、存储与登录态等其他云端资源。
学习目标
本章小节关系:第 2.1 节建立运行模型与触发方式的总览;第 2.2 节落到「怎么写」——函数入口、依赖与无状态;第 2.3 节聚焦两类高频触发场景;第 2.4 节把视角拉宽,说明云函数如何与数据库、存储、身份认证联动。四节由抽象到具体、由单点到协同,构成完整的函数认知。
云函数的本质是「按需执行的一段代码」。当某个事件到达时,平台实例化或复用该函数,传入本次调用的上下文与参数,执行后返回结果;没有请求时,函数不占用常驻资源。
与传统常驻服务不同,云函数以事件为触发源。每一次调用都是一次独立的执行:平台准备好运行环境,加载你的代码,传入事件与上下文,运行,回收。这种模型的优势在于天然契合波动明显的业务流量——访问高峰自动扩容,空闲时归零,你只为实际执行付费。
触发方式决定了「事件从哪来」,常见有三类:
当函数一段时间未被调用,平台可能回收其运行实例;下一次请求到来时需要重新初始化运行环境,这段额外耗时称为冷启动。与之相对,平台也会复用近期活跃的实例以加速响应。理解这一点,有助于你在编写时避免过重的初始化逻辑,从而降低延迟。
云函数适合处理请求驱动、短时运行、彼此独立的计算,例如接口聚合、数据处理、消息推送触发等。对于需要长时间常驻、密集占用内存或依赖特定底层环境的工作,则应谨慎评估,或将其拆分为更短小的步骤。把握边界,才能让函数既快又省。
一个云函数通常由「入口函数」与「依赖」两部分组成。入口函数接收调用方传入的事件对象与上下文对象:事件对象承载业务参数,上下文对象则带有请求来源、环境变量等元信息。
在函数体内,你从事件对象中读取参数,从上下文对象中获取环境信息或调用者线索,完成计算后通过返回值把结果交还调用方。清晰地区分「输入来自事件、输出通过返回」,是写出可测试函数的第一步。
云函数延续了常见服务端语言的包管理习惯:你可以声明所需的第三方库,平台在部署时安装并随函数一同打包。需要留意依赖体积——体积越大,部署与冷启动越慢。建议只引入真正需要的库,移除开发期才用到的工具。
函数实例可能被复用也可能被新建,不要依赖内存中残留的临时状态。需要跨请求保存的数据,应写入云数据库或云存储;需要跨函数共享的配置,应放在环境变量或配置服务中。把函数写成「输入明确、副作用可预期」的纯逻辑单元,是后续可维护性的关键。
函数内应显式处理可预期的异常(如参数缺失、依赖资源不可用),并通过返回结构化的错误信息帮助调用方判断。同时,把关键步骤输出到日志,便于在控制台观察执行轨迹、定位问题。良好的日志与错误约定,是线上排障的命脉。
两类触发入口在实际项目中尤为常用,值得单独展开。
定时触发依靠时间表达式定义执行节奏,例如每分钟、每天凌晨或每周一。它不需要任何外部调用方,由平台内部调度器主动发起。典型用途包括:定时汇总前一天的访问数据、周期性清理过期临时文件、在固定时间推送提醒。由于定时触发通常没有「用户」上下文,函数内若需操作带权限的数据,应走服务端 SDK 的高权限通道,并在函数内自行完成业务校验。
HTTP 触发把云函数变成一个普通的 Web 接口,可被浏览器、移动端或第三方系统直接请求。它适合接收支付回调、对接开放平台事件、或构建对外公开的状态查询接口。使用 HTTP 触发时,应格外关注来源校验与限流:通过签名或令牌确认调用方身份,对高频来源做限制,避免被恶意刷量。
两者并不互斥:同一段业务核心,常被封装成可被定时任务调用、也能被 HTTP 入口复用的内部方法,从而在不同触发场景下保持一致的行为。例如一个「生成日报」的逻辑,既可由定时触发每天执行,也可由管理后台的 HTTP 入口手动触发。把触发器与业务逻辑解耦,是提高复用率的有效做法。
云函数真正的价值,在于它是云端资源的「调度中枢」。通过服务端 SDK,函数可以越过前端的权限限制,直接读写云数据库、存取云存储,并读取当前请求的登录身份。
在云函数内引入服务端 SDK 并指向所在环境后,函数便能以较高权限操作资源。这让「批量处理」「跨用户聚合」「敏感写入」等服务端逻辑有了落脚点,而这类操作不适合放在权限受限的前端直接执行。
当函数由前端调用时,请求通常携带登录态。函数可从上下文取出当前用户标识,据此判断「这位用户是否有权做这件事」。即便是高权限的服务端通道,也应在函数内做业务层校验,而非盲目信任任何传入的身份参数——这是纵深防御的基本动作。
一个常见模式是:前端把一次复杂操作交给云函数,函数先校验调用者身份,再据此查询数据库、写入新记录、生成文件的临时访问地址,最后把聚合结果一次性返回。这样既减少了前端与多个服务之间的往返,也把敏感逻辑收口在服务端。
掌握「云函数作为协调者」这一视角后,你就能把零散的云端能力组合成有业务语义的服务,而这正是下一章云数据库、以及后续存储与身份章节要进一步夯实的基础。
本章关键词:云函数、CloudBase 云函数、Serverless 函数、定时触发、HTTP 触发。下一篇:第 3 章 · 云数据库。