View a markdown version of this page

使用 cfn-lint 验证模板 - Amazon CloudFormation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

使用 cfn-lint 验证模板

CloudFormation Linter(cfn-lint)根据 CloudFormation 资源提供程序架构和其他规则检查 JSON 和 YAML 模板。在您将模板发送到 CloudFormation 之前,它可以查找无效的资源属性、不支持的值和常见问题。

源代码、发行说明、设置和完整的规则列表可在 GitHub 上的 cfn-lint 存储库中找到。

安装 cfn-lint

从 Python 包索引(PyPI)安装 cfn-lint:

python3 -m pip install cfn-lint

在 macOS 上,您也可以使用 Homebrew 来安装它:

brew install cfn-lint

有关支持的 Python 版本和其他安装方法,请参阅 GitHub 上的安装说明。

运行 cfn-lint

向命令传递一个或多个模板路径:

cfn-lint template.yaml cfn-lint template-one.yaml template-two.json

要检查多个 Amazon Web Services 区域 的模板,请使用 --regions 选项:

cfn-lint --regions us-east-1 us-west-2 -- template.yaml

当发现问题时,该命令会返回非零退出代码。当模板未通过您选择的检查时,您可以使用此行为停止自动构建。

配置检查

使用 .cfnlintrc、.cfnlintrc.yaml 或 .cfnlintrc.yml 文件将项目设置与模板一同保存。您可以使用此文件来选择模板、包括或忽略检查、选择 Amazon Web Services 区域 以及配置规则行为。有关所有设置,请参阅 GitHub 上项目文档中的配置文件。

向您的工作流添加 cfn-lint

您可以从受支持的编辑器运行 cfn-lint,也可以在执行 Git 提交前自动运行,或者将其作为自动构建的一部分来运行。CloudFormation 语言服务器还使用 cfn-lint 在您键入时显示问题。有关语言服务器设置,请参阅CloudFormation 语言服务器。

有关编辑器插件、GitHub Actions、预提交配置、自定义规则和更多示例,请参阅 GitHub 上的 cfn-lint 项目文档。