Agent Skills
返回列表
🔒

部署前 CloudFormation 模板校验

IT 运维与安全 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/validate-cloudformation-templates-before-deploy-with-cfn-lint

技能介绍

要解决的问题

CloudFormation 模板的语法与配置错误,往往要到 Stack 更新真正开始时才暴露出来。一次看似简单的 stack update,可能因为一个属性名拼写错误、Region 不匹配,或 Fn::GetAtt 引用了不存在的资源而直接失败,排查链路却要从审查阶段重新开始。这类问题的代价不在修复本身,而在于发现得太晚。

技能如何工作

这个技能基于开源的 cfn-lint,在模板提交或部署前做一轮静态检查。它可以在本地直接运行,无需触碰 AWS 环境,核心能力包括:

  • Schema 校验:检查模板中的属性名、类型与取值是否符合 CloudFormation 规范;
  • Region 检查:识别仅在特定 Region 可用的资源或属性,避免部署到错误环境时才报错;
  • 内建函数检查:验证 Ref、Fn::Sub、Fn::GetAtt 等函数的引用目标是否存在、参数是否合法;
  • SAM 转换支持:通过 --info 参数可以获取 SAM Transformation 的相关信息,便于排查转换类问题。

典型流程很直接:把 template.yaml 交给 linter,拿到结构化的错误反馈,在部署前完成修复。整个过程不改变现有工作流,只需要把检查动作前置到 CI 或提交前的本地步骤中。

适用边界与注意点

  • 上游工具要求 Python 3.10 至 3.14 环境,选型前需要确认运行环境满足版本约束;
  • 静态检查能覆盖配置与语法层面的问题,但不能替代真实部署验证,例如权限不足、资源配额、运行时行为等仍需在部署阶段确认;
  • 规则集随 CloudFormation 规范演进而更新,建议定期同步最新版本,避免漏掉新增资源的校验规则。

使用场景

  • 在提交 Terraform 前的 CI 流程里,需要对 CloudFormation 模板做一轮 schema 校验,拦截拼写和类型错误。
  • 部署 SAM 应用到新 Region 之前,想确认模板中的资源与属性在该 Region 可用,避免部署失败。
  • 模板里用到多个 Fn::GetAtt,需要验证引用的资源是否存在、参数是否合法,再发起 Stack 更新。
  • 接手他人的模板,想本地跑一遍检查,先摸清配置问题再进入审查流程。

适合人员

  • 云平台工程师,负责维护 CloudFormation 模板并在部署前定位配置错误。
  • DevOps 工程师,需要在 CI 流程里加入模板静态检查,减少人工审查遗漏。
  • 负责排查 Stack 更新失败的工程师,需要快速定位 schema、Region 或内建函数问题。
  • 刚接手 CloudFormation 项目的开发者,想在本地跑一轮检查后再提交代码。