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

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

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

学习

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

更多

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

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
AWS CloudFormation 入门/课时/Drift 检测
RawBlame
课时目录12 节

AWS CloudFormation 入门

  1. 01CloudFormation 是什么
  2. 02模板结构
  3. 03资源声明
  4. 04参数与映射
  5. 05Stack 生命周期
  6. 06嵌套 Stack
  7. 07Drift 检测
  8. 08CloudFormation vs Terraform
  9. 09SAM 与 Lambda
  10. 10与 AWS CDK 关系
  11. 11失败回滚
  12. 12综合练习

Drift 检测

控制台手动改资源 vs 模板期望状态。

25 分钟

Drift 检测

Drift(漂移) 指 Stack 管理的资源 实际配置 与 模板声明 不一致——常见于有人在 aws-essentials 控制台手工改安全组、标签或实例类型。CloudFormation Drift Detection 扫描并报告差异。

学习目标

  • 理解 drift 成因与风险
  • 使用 detect-stack-drift 与 describe-stack-resource-drifts
  • 对照 Terraform plan 显示的 drift(tf-plan)

典型漂移场景

操作结果
Console 改 SecurityGroup 入站规则模板仍写旧 CIDR,实际已变
CLI 给 EC2 换 InstanceType(若可改)Stack 认为仍是 t3.micro
手工删 CFN 管理的资源Stack 进入 UPDATE_ROLLBACK 等异常态

IaC 原则:变更走模板 + ChangeSet 或 TF plan,避免「只有某人记得点了什么」——与 aws-vs-tf 一致。

检测命令

# 发起漂移检测
aws cloudformation detect-stack-drift \
  --stack-name coderoadmap-lab

# 查询检测 ID 后查看详情
aws cloudformation describe-stack-resource-drifts \
  --stack-name coderoadmap-lab \
  --stack-resource-drift-status-filters MODIFIED DELETED

控制台:Stack → Stack actions → Detect drift,在 Drifts 页签查看 Expected vs Actual。

修复策略

1. 以模板为准 → update-stack / execute-change-set,把现实拉回声明状态
2. 以现实为准 → 改 template.yaml,再 update(类似 TF 改 .tf 后 plan)
3. 资源已删   → 可能需 import 或重建 Stack(视资源类型)

Terraform 用 state 记录 ID;CFN 用 Stack 资源记录。二者都不应长期与 Console 手工变更并存。

CodeRoadMap 建议

实验账号可 Console 试探 一次 drift 检测加深理解;生产 GitOps 路径 禁止 Console 改 TF/Helm 管理的层。CFN 实验栈结束应 delete-stack 清场。

练习

  • 部署最小 Stack 后,在 Console 改一条 SG 规则,再 Detect drift
  • 用 update-stack 把规则改回模板值,确认 drift 消失
  • 对比 TF:terraform plan 在有人 Console 改资源后的输出

小结

Drift = 现实偏离模板;检测后要么改模板要么改回资源。 下一课 CFN vs Terraform。

加载本节练习…
← 上一课嵌套 Stack下一课 →CloudFormation vs Terraform