cfn-lintでCloudFormationの静的解析を行う

2021-01-12

cfn-lintをインストールする macOSを利用しているためbrewでインストールした

brew install cfn-lint

引数にCloudFormationを記述したファイルを指定して実行する

cfn-lint template.yaml

基本的にはファイルごとのコマンドラインの実行は行わず、後述するVisual Studio Code(vscode)の拡張機能を利用する

vscodeでの利用

拡張機能を利用しエディタにシンタックスエラーを表示する

cfn lint vscode error

CloudFormationの補完を有効にする

拡張機能をインストールする

cfn-lintの拡張機能を有効にする

拡張機能をインストールする

cfn-lintのpathを解決しないためREADMEを参考に設定

% which cfn-lint
/usr/local/bin/cfn-lint

vscode cfn-lint path setting

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"
    ],

Web系ソフトウェアエンジニアの備忘録

Contact: 3982ne@gmail.com