~/VibeHandbook
$39

基础设施

aws.amazon.com

Serverless

是什么

Serverless(无服务器)意味着你只编写一个个独立的函数,云服务商仅在有事件触发它们时才运行——一个 HTTP 请求、一次文件上传、一个定时器。底层仍然有服务器,但你永远看不到也无需管理它们。你只为代码实际运行的时间付费,往往精确到毫秒。

优势

  • 无需预配、打补丁或维持服务器运行。
  • 自动从零扩展到数千个并发运行实例。
  • 按使用量计费;空闲代码不产生费用。
  • 与云事件(队列、存储、数据库)干净地集成。
  • 非常适合突发或不可预测的流量。

权衡取舍

  • 冷启动:最近没有运行过的函数可能需要额外时间来唤醒。
  • 执行时间限制(通常为几分钟)使其无法处理长时间任务。
  • 在极高且稳定的流量下,相比一台普通服务器,成本可能让你吃惊。
  • 本地测试和调试比普通应用更棘手。
  • 厂商锁定——各服务商的事件模型和 API 各不相同。

何时使用

对于流量不均匀、又不想费心照看基础设施的 API、webhook、定时任务和事件驱动型任务,选择 serverless。它特别适合作为云服务之间的胶水代码。

与 vibe coding 的契合度

Serverless 与 AI 主导的开发配合得很好,因为工作单元是一个单一、自包含的函数——便于 agent 生成、测试和部署。AWS SAM、Serverless Framework 和 Vercel 等框架让 AI 可以在一个配置文件中定义函数、它的触发器以及权限。建议:要求 agent 明确设置合理的超时时间和内存大小,并尽量精简依赖——更少的包意味着更小的打包体积和更快的冷启动。

# serverless.yml — AWS Lambda 函数
service: my-api
provider:
  name: aws
  runtime: nodejs20.x
  timeout: 10
functions:
  hello:
    handler: handler.hello
    events:
      - httpApi:
          path: /hello
          method: get
# 部署整个栈
npx serverless deploy