CloudFormation 模板基础

在 AWS 上自动化部署

Dunieski Otano

Amazon Web Services Solutions Architect

为何使用基础设施即代码

漂移

  • 手动控制台点击会随时间产生漂移
  • IaC 在文件中声明期望状态
  • 可复现、可评审、可版本化
  • CloudFormation、SAM 和 CDK 是 AWS 工具包
在 AWS 上自动化部署

CloudFormation 模板结构

参数

  • Resources(必需):要创建的基础设施
  • Parameters:部署时传入的输入
  • Outputs:由栈导出的值
  • Mappings、Conditions、Transform:辅助项(Transform 启用 SAM)
在 AWS 上自动化部署

内置函数

内置函数

  • Ref:引用参数或其他资源
  • Fn::GetAtt:读取资源的属性
  • Fn::Sub:将变量替换进字符串
  • 简写:Ref、!GetAtt、!Sub
在 AWS 上自动化部署

用变更集预览更新

  • 变更集预览更新将执行的操作
  • 列出每个 Add、Modify、Remove 操作
  • 标记将被替换的资源
  • 可执行或丢弃,避免意外更新

变更集

在 AWS 上自动化部署

漂移检测

  • Drift:资源在 CloudFormation 之外被更改
  • 单资源状态:IN_SYNC、MODIFIED、DELETED、NOT_CHECKED
  • 单资源报告显示差异
  • 重新部署模板以对齐

漂移检测

在 AWS 上自动化部署

部署与更新栈

  • Create stack:首次部署
  • Update stack:就地更改资源
  • Stack events* 显示每一步
  • 失败的更新会回滚到先前状态

更新

在 AWS 上自动化部署

让我们一起练习吧!

在 AWS 上自动化部署

Preparing Video For Download...