CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
无服务器入门/课时/十二要素应用
RawBlame
课时目录12 节

无服务器入门

  1. 01无服务器是什么
  2. 02十二要素应用
  3. 03FaaS 执行模型
  4. 04AWS Lambda 入门
  5. 05事件驱动架构
  6. 06API Gateway
  7. 07冷启动与性能
  8. 08无状态与外部存储
  9. 09数据库迁移
  10. 10本地开发与部署
  11. 11成本与限制
  12. 12综合练习

十二要素应用

twelve-factor-apps;云原生配置。

35 分钟

十二要素应用

Heroku 十二要素(12-Factor App) 写于 PaaS 时代,但今天仍是 Serverless 与容器化 的共同语言:配置外置、无状态进程、日志当事件流——违背这些要素的函数,上线后往往卡在冷启动、密钥泄露或「换环境就挂」。

学习目标

  • 对照十二要素中与 Serverless 最相关的 5–6 条
  • 理解「配置进环境变量」在 Lambda 里的落地方式
  • 与 scale-stateless 的无状态原则对齐

与 Serverless 强相关的要素

要素要点Lambda 落地
III 配置配置与代码分离环境变量、SSM Parameter Store、Secrets Manager
IV 后端服务DB/队列当附加资源RDS、DynamoDB、SQS 通过 IAM 访问,不绑本机
VI 进程无状态、share-nothing实例内存不写 Session;见 srv-state
VIII 并发通过进程模型扩展平台按并发扩函数,不是你手动 fork
XI 日志日志是事件流stdout → CloudWatch Logs,不轮转本地文件
XII 管理进程迁移/一次性任务独立Flyway 迁移常单独 Lambda 或 CI Job

反模式:把 application-prod.yml 打进部署包、在 /tmp 存用户 Session、在函数全局变量里缓存「只能本实例读」的业务状态。

配置示例

# SAM template 片段:配置外置
Environment:
  Variables:
    TABLE_NAME: !Ref OrdersTable
    STAGE: !Ref Stage
# 密钥用 Secrets Manager ARN,不要写进 repo

Spring Boot 习惯 @Value 与 profile;Lambda 里等价物是 启动时读环境变量 + IAM 角色,与 aws-iam 的最小权限一致。

与扩展性 track 的交叉

scale-stateless 讲 HTTP 服务无 Session;十二要素 VI 进程 把同一思想推广到 任意可替换进程。Serverless 把「进程」缩成 一次 invocation,原则不变。

练习

  • 审计一个现有 Spring 模块:哪些配置应迁到环境变量?
  • 对照十二要素官网,标出你最常违反的一条
  • 画一张图:Lambda、DynamoDB、SQS 作为「附加资源」如何挂在函数外

小结

十二要素是 Serverless 的体检表:配置外置、进程无状态、日志外流。 下一课进入 FaaS 执行模型——一次调用从进入到退出究竟发生什么。

加载本节练习…
← 上一课无服务器是什么下一课 →FaaS 执行模型