View a markdown version of this page

cfn-lint を使用してテンプレートを検証する - AWS CloudFormation

cfn-lint を使用してテンプレートを検証する

CloudFormation Linter (cfn-lint) は、CloudFormation リソースプロバイダースキーマと追加のルールに照らして JSON テンプレートと YAML テンプレートをチェックします。そのため、テンプレートを CloudFormation に送信する前に、無効なリソースプロパティ、サポートされていない値、一般的な問題を見つけることができます。

ソースコード、リリースノート、設定、完全なルールリストは、GitHub の cfn-lint リポジトリで入手できます。

cfn-lint をインストールする

Python Package Index (PyPI) から cfn-lint をインストールします。

python3 -m pip install cfn-lint

macOS では、その代わりに Homebrew を使用してインストールできます。

brew install cfn-lint

サポートされている Python バージョンおよびその他のインストール方法については、GitHub の「インストール手順」を参照してください。

cfn-lint を実行する

コマンドに 1 つ、または複数のテンプレートパスを渡します。

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

複数の AWS リージョンのテンプレートをチェックするには、--regions オプションを使用します。

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

問題が見つかると、コマンドがゼロ以外の終了コードを返します。この動作を使用することで、テンプレートが選択したチェックに合格しなかった場合に自動構築を停止できます。

チェックを設定する

テンプレートでプロジェクト設定を維持するには、.cfnlintrc、.cfnlintrc.yaml、または .cfnlintrc.yml ファイルを使用します。このファイルを使用して、テンプレートの選択、チェックの包含または無視、AWS リージョン の選択、ルール動作の設定を行うことができます。すべての設定については、GitHub のプロジェクトドキュメントで「設定ファイル」を参照してください。

cfn-lint をワークフローに追加する

cfn-lint は、サポートされているエディタから実行する、Git コミットの前に自動的に実行する、または自動構築の一環として実行することができます。CloudFormation 言語サーバーは、入力と同時に問題を表示するために cfn-lint も使用します。言語サーバーのセットアップについては、「CloudFormation 言語サーバー」を参照してください。

エディタプラグイン、GitHub Actions、pre-commit 設定、カスタムルール、その他の例については、GitHub の「cfn-lint プロジェクトドキュメント」を参照してください。