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

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

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

学习

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

更多

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

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
AWS CloudFormation 入门/课时/模板结构
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综合练习

模板结构

AWSTemplateFormatVersion、Resources、Outputs。

35 分钟

模板结构

CloudFormation 模板是 JSON 或 YAML 文档,顶层块描述版本、参数、资源与输出。Resources 是唯一必填段——没有资源就没有 Stack。

学习目标

  • 读懂 AWSTemplateFormatVersion、Description、Resources、Outputs
  • 写最小可部署的 YAML 模板
  • 对照 tf-hcl 的 block 结构

最小模板

AWSTemplateFormatVersion: '2010-09-09'
Description: CodeRoadMap CFN 最小示例

Resources:
  LogsBucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: coderoadmap-cfn-logs-demo
      Tags:
        - Key: Project
          Value: coderoadmap

Outputs:
  BucketName:
    Description: S3 桶名
    Value: !Ref LogsBucket
    Export:
      Name: !Sub '${AWS::StackName}-LogsBucket'
顶层键作用
AWSTemplateFormatVersion模板语言版本,通常 2010-09-09
Description人类可读说明
Resources必填,要创建的 AWS 资源
Outputs部署后暴露的值,可跨 Stack 导出

内置函数(Intrinsic Functions)

# !Ref        → 引用 Parameter 或 Resource
# !GetAtt     → 读资源属性(如 VPC ID)
# !Sub        → 字符串替换 ${Var}
# !Join / !Split / !Select → 列表与字符串操作

与 HCL 的 var.xxx、resource.xxx.attr 对应;CFN 在 YAML 内嵌函数,TF 在 表达式 里引用。

与 Terraform 文件对照

CloudFormationTerraform
template.yaml*.tf 根模块
Resourcesresource block
Outputsoutput block
Stackterraform apply 一次完整变更

CodeRoadMap 仓库若已有 infra/*.tf,可并行写 cfn/template.yaml 对照学习,生产仍以 TF 为准。

练习

  • 为 LogsBucket 增加 BucketEncryption 属性
  • 用 !Sub 让桶名包含 ${AWS::AccountId}
  • 对比 aws-s3 控制台字段与 Properties
  • 小结

    模板 = 版本 + Resources +(可选)Parameters/Outputs。 下一课资源声明。

    加载本节练习…
    ← 上一课CloudFormation 是什么下一课 →资源声明