LoginSignup
2
2

More than 1 year has passed since last update.

AWS Toolkit for VSCodeの設定

Last updated at Posted at 2021-04-05

AWS Toolkit for VSCodeを入れていたものの、よく見たらちゃんと動いてなかった。
なぜ補完もせずゴリゴリ書いていたのか…
なのでちゃんと設定した記録。

インストールが必要なもの

VSCode本体、node.js、AWS CLI、AWS CDK、AWS SAM CLI、Docker、あたりは省略。

  • YAMLエクステンション
    AWS ToolkitのSAM対応や、CloudFormation用のエクステンションが依存している。

  • aws-cloudformation-template-schema
    CloudFormationテンプレートの補完と検証を行える。
    VSCodeであれば、下記のCloudFormation Linterを入れればよい。
    GitHub Actionsもあるの、いいじゃないと思った。push した後にチェックしても手遅れ感あるので、ローカルでチェックする前提で最後の防波堤として導入してもいいのかもしれない。

  • CloudFormation Linter
    E3012エラーはチェックから外してもよさそう。
    外す場合は、VSCode の設定で cfnLint.pathcfn-lint --ignore-checks E3012 と設定する。
    手元の設定では E3012 は外さず、東京リージョンを指定して /opt/homebrew/bin/cfn-lint -r ap-northeast-1 と設定した(M1 Macの場合)。

  • cfn-lint
    CloudFormation Linterが依存している。
    Macなら brew install cfn-lint でインストール。
    @aws-amplify/clicfn-lint に依存しているので、Amplify CLIをインストールしていると brew install 中にリンクに失敗する。
    JavaScript 製の cfn-lint は deprecated らしく、本人も cfn-python-lint 使えって言っているので、素直に /opt/homebrew/bin/cfn-lint のリンク(M1 Macの場合)を削除して brew link cfn-lint 、か --overwrite を付けて上書きし、Python 版にリンクを貼る。

  • pydot
    CloudFormation Linterが依存している。
    CloudFormation Linterのスタック可視化機能を使いたいならこちらもインストールする。

規約など

  • CloudFormationテンプレート名
    公式ドキュメントには、テンプレート名が template.yaml でないと認識しないと書いてある。
    実際は template.yml でも認識する場合がある。
    ソースコードを見た感じ template.yaml にしておいたほうが全機能で認識してくれそう。

  • ECSタスク定義ファイル名
    サフィックスが ecs-task-def.json でないと認識しない。
    my-ecs-task-def.json など。

その他の設定

色々な記事を見ていると yaml.customTags を自分で設定しているものが多い。
CloudFormation Linterのソースコードを見ると、内部で自動的に設定をしている箇所があるので、読み間違えてなければ今どきは何もやらなくていいんじゃないかと思う。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2