cfn-lintをインストールする macOSを利用しているためbrewでインストールした
brew install cfn-lint
引数にCloudFormationを記述したファイルを指定して実行する
cfn-lint template.yaml
基本的にはファイルごとのコマンドラインの実行は行わず、後述するVisual Studio Code(vscode)の拡張機能を利用する
vscodeでの利用
拡張機能を利用しエディタにシンタックスエラーを表示する
CloudFormationの補完を有効にする
拡張機能をインストールする
cfn-lintの拡張機能を有効にする
拡張機能をインストールする
cfn-lintのpathを解決しないためREADMEを参考に設定
% which cfn-lint
/usr/local/bin/cfn-lint
CloudFormationのタグを許可する
yamlのバリデーションがCloudFormationのタグをエラーにしてしまうため、カスタムタグを設定し許可する
"yaml.customTags": [
"!Ref",
"!Sub scalar",
"!Sub sequence",
"!Join sequence",
"!FindInMap sequence",
"!GetAtt scalar",
"!GetAtt sequence",
"!Base64 mapping",
"!GetAZs",
"!Select scalar",
"!Select sequence",
"!Split sequence",
"!ImportValue",
"!Condition",
"!Equals sequence",
"!And",
"!If",
"!Not",
"!Or",
"!And sequence",
"!If sequence",
"!Not sequence",
"!Equals",
"!Or sequence",
"!FindInMap",
"!Base64",
"!Join",
"!Cidr",
"!Sub",
"!GetAtt",
"!ImportValue sequence",
"!Select",
"!Split"
],