

# `cfn-lint` を使用してテンプレートを検証する
<a name="cfn-lint"></a>

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

ソースコード、リリースノート、設定、完全なルールリストは、[GitHub の cfn-lint リポジトリ](https://github.com/aws-cloudformation/cfn-lint)で入手できます。

**Topics**
+ [`cfn-lint` をインストールする](#cfn-lint-install)
+ [`cfn-lint` を実行する](#cfn-lint-run)
+ [チェックを設定する](#cfn-lint-configure)
+ [`cfn-lint` をワークフローに追加する](#cfn-lint-integrate)

## `cfn-lint` をインストールする
<a name="cfn-lint-install"></a>

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

```
python3 -m pip install cfn-lint
```

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

```
brew install cfn-lint
```

サポートされている Python バージョンおよびその他のインストール方法については、GitHub の「[インストール手順](https://github.com/aws-cloudformation/cfn-lint#install)」を参照してください。

## `cfn-lint` を実行する
<a name="cfn-lint-run"></a>

コマンドに 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
```

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

## チェックを設定する
<a name="cfn-lint-configure"></a>

テンプレートでプロジェクト設定を維持するには、`.cfnlintrc`、`.cfnlintrc.yaml`、または `.cfnlintrc.yml` ファイルを使用します。このファイルを使用して、テンプレートの選択、チェックの包含または無視、AWS リージョン の選択、ルール動作の設定を行うことができます。すべての設定については、GitHub のプロジェクトドキュメントで「[設定ファイル](https://github.com/aws-cloudformation/cfn-lint#config-file)」を参照してください。

## `cfn-lint` をワークフローに追加する
<a name="cfn-lint-integrate"></a>

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

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