はじめに
こんにちは。澤井です!
最近AWSを触る機会が増えました。
なかでもAWS CloudFormationを触っています。
AWS CloudFormationは、IaCを実現するとても強力な仕組みです。
AWS CloudFormationはメリットがとても多いですが、それなりにコード量が多くなります。
他のプログラム言語同様に開発環境を整えると開発体験が大きく向上します。
今回はすぐにできる開発環境整備について紹介したいと思います。
またCI/CDなど、AWSの実務フローではAWS CLIを使用する機会が多いかと思います。
合わせてAWS CLIやAWS Copilot CLIなどのコマンド補完についても紹介したいと思います。
具体的に紹介するツールは、以下のとおりです。
- AWS CloudFormationのlint&コード補完
- AWS CLI&AWS Copilot CLIのコマンド補完
AWS CloudFormationのlint&コード補完
開発体験を向上させるツールとして、lint
とコード補完
が挙げられるかと思います。
AWS CloudFormationでもlint
とコード補完
を使用できます。
lint
:cfn-lintコード補完定義
:cloudformation-template-schema
今回は利用者の多いVisual Studio Code(以下VS Code)で、上記ツールを使用する方法を紹介したいと思います。
導入フローは、以下の通りです。
- VS Code拡張機能 YAMLをインストール
- cfn-lintをインストール
- VS Code拡張機能 CloudFormation Linter をインストール
- CloudFormation Linterとcfn-lintを連携
cfn-lintのインストール方法は、下記記事で分かりやすく紹介されています。
https://aws.amazon.com/jp/blogs/news/git-pre-commit-validation-of-aws-cloudformation-templates-with-cfn-lint/
CloudFormation Linterとcfn-lintの連携は、CloudFormation Linterの設定画面でcfn-lintのパスを指定するだけです。
具体的には以下キャプチャーを参照にしてください。
またCloudFormation Linterは、コード補完
も提供しており、
内部でcloudformation-template-schemaが使用されているようです。
以上でVS Codeを使ってAWS CloudFormationのlint
とコード補完
ができるようになります。
AWS CLI&AWS Copilot CLIのコマンド補完
AWSはコマンドラインツールとして、AWS CLIやAWS Copilot CLIを提供しています。
コマンドは、補完ができると便利です。
MacでのZshの使用を前提に、AWS CLIとAWS Copilot CLIのコマンド補完について紹介します。
AWS CLI
以下を参考にして、.zshrcにコードを追加します。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-completion.html
autoload -Uz compinit && compinit
autoload -U bashcompinit && bashcompinit
complete -C '/usr/local/bin/aws_completer' aws
AWS Copilot CLI
Zshは共通のコマンド補完機構があります。
AWS Copilot CLIは、コマンド補完機構を使用します。
具体的には決められたパスに補完定義ファイルを配置することで、補完ができるようになります。
以下を参考にして導入します。
https://aws.github.io/copilot-cli/ja/docs/commands/completion/
簡単に導入方法をご紹介します。
$ source <(copilot completion zsh)
$ copilot completion zsh > "${fpath[1]}/_copilot" # to autoload on startup
${fpath[1]}/_copilot
にAWS Copilot CLI用の補完定義ファイルが作成されます。
${fpath[1]}
を、.zshrcで使用するので${path[1]}
を確認しておくと良いです。
$ echo ${fpath[1]}
// .zshrcに設定するために補完定義ディレクトリを確認
.zshrcに補完定義ディレクトリのパスを設定します。
例えばecho ${fpath[1]}
の値がhoge
の場合、.zshrcは以下のようになります。
+ fpath=(hoge $fpath)
autoload -Uz compinit && compinit
autoload -U bashcompinit && bashcompinit
complete -C '/usr/local/bin/aws_completer' aws
以上でAWS Copilot CLIの補完ができるようになります。
まとめ
開発環境を整備することで開発体験がとても向上しました。
参考になれば幸いです。