Stack 生命周期
create/update/delete、变更集 ChangeSet。
30 分钟
Stack 生命周期
Stack 是一次 CloudFormation 部署的实例:模板 + 当前参数 → 一组 AWS 资源。create / update / delete 由 Stack 引擎按依赖图执行;ChangeSet 提供类似 terraform plan 的预览。
学习目标
- 掌握 create-stack、update-stack、delete-stack 流程
- 用 ChangeSet 预览变更再执行
- 对照 tf-workflow 的 plan/apply
创建与更新
# 创建
aws cloudformation create-stack \
--stack-name coderoadmap-lab \
--template-body file://template.yaml \
--capabilities CAPABILITY_NAMED_IAM
# 等待完成
aws cloudformation wait stack-create-complete --stack-name coderoadmap-lab
# 更新(改模板后)
aws cloudformation update-stack \
--stack-name coderoadmap-lab \
--template-body file://template.yaml
| 阶段 | Stack 状态 | 含义 |
|---|---|---|
| 创建中 | CREATE_IN_PROGRESS | 资源按序创建 |
| 就绪 | CREATE_COMPLETE | 可读取 Outputs |
| 更新中 | UPDATE_IN_PROGRESS | 替换或原地修改资源 |
| 失败 | *_FAILED / ROLLBACK_* | 见 cf-rollback |
ChangeSet(变更集)
aws cloudformation create-change-set \
--stack-name coderoadmap-lab \
--change-set-name add-rds \
--template-body file://template-v2.yaml
aws cloudformation describe-change-set \
--stack-name coderoadmap-lab \
--change-set-name add-rds
aws cloudformation execute-change-set \
--stack-name coderoadmap-lab \
--change-set-name add-rds
ChangeSet = plan;execute = apply。 CodeRoadMap CI 若走 TF,对应 terraform plan -out + apply;CFN 实验可在控制台 Change sets 页签点选预览。
删除 Stack
aws cloudformation delete-stack --stack-name coderoadmap-lab
默认删除 Stack 内 由 CFN 管理的资源;带 DeletionPolicy: Retain 的资源会保留(如 prod RDS)。实验结束务必 destroy,避免 aws-cost 免费层外计费。
CodeRoadMap 建议
生产 ;CFN Stack 用于 。勿在同一环境对同一资源既 TF 又 CFN 双管。