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 プロジェクトドキュメント