跳到正文

Serverless

中级通用

Serverless 是把服务端代码交给云平台按请求或事件运行的部署方式,你仍然在用服务器,但通常不必自己维护常驻进程。它解决了流量起伏时自己扩容和管理机器的麻烦,例如处理网站表单提交。

你可能会说:「我想让网站表单提交后自动处理数据,访问量不固定,也不想自己管服务器。」

读之前建议先了解

动手看看

提交访客云平台函数实例尚未运行数据库
1

访客提交网站表单,请求先到云平台;开发者只需部署处理代码,不用让它一直运行着等请求。

要点

  1. 1

    代码按请求或事件运行

    你可以把表单提交写成一个处理函数:请求来了,平台就运行它并返回结果。平台负责提供运行环境,但函数里怎么校验数据、处理错误,仍然由我们决定。

  2. 2

    实例可能随时被替换

    别把用户登录状态或待处理订单只放在函数的内存里,因为下一次请求可能落到另一个实例。需要保留的数据,我们通常放进数据库或对象存储。

  3. 3

    少管机器不等于少管故障

    平台通常会处理启动和扩容,但你仍要关注超时、调用次数、外部服务故障和费用。出了问题,先看服务端日志,再确认是哪次请求或事件失败。

容易混淆的地方

Serverless 不等于“没有服务器”,而是运行环境主要由平台管理;它也不等于网站托管:静态页面可以只托管文件,表单处理这类服务端逻辑才需要运行代码。和自己维护单实例服务相比,你少管进程和扩容,但也要接受平台的运行限制。

什么时候用

适合用

  • 网站表单提交后要校验内容、写入数据库,平时请求少,活动期间可能突然增多。
  • 图片上传完成后要生成缩略图,可以由上传事件触发处理代码。
  • AI 工具需要一个后端接口代为调用模型服务,流量不稳定,想先减少服务器运维工作。

不适合用

  • 只是展示作品集页面,没有服务端计算或数据处理,用静态网站托管就够了。
  • 服务需要长期维持连接,并依赖进程内持续运行的任务,可先考虑常驻服务部署。
  • 已有一台稳定运行的服务器,任务只是每天生成一次报表,用现有服务器的定时任务可能更直接。

练一练

你在做一个活动网站:平时几乎没人提交报名表,发布后可能短时涌入大量请求,提交内容要写入数据库。你会怎么安排后端?

让 AI 帮你做

请把报名表提交接口设计为 Serverless 函数:校验输入后写入数据库,不依赖函数内存保存状态。列出所需环境变量、超时与错误处理方式,并说明部署后怎样查日志和验证提交结果。

接下来学什么