各種検証プラグインインストールと統合開発環境の設定

【連載】

AWSで実践! 基盤構築・デプロイ自動化

【第23回】各種検証プラグインインストールと統合開発環境の設定

[2019/12/12 08:00]川畑 光平 ブックマーク ブックマーク

本連載では、以下のイメージの構成のようなマイクロサービスアーキテクチャにおける、基盤自動化環境の構築を実践していきます。

本連載で構築していく基盤自動化環境のイメージ

前回は、CloudFormationでのテンプレート作成を効率化するための環境構築のポイントやCLI(Command Line Interface)のインストール方法を概説しました。続く今回は、テンプレートのコード補完/文法チェックなどを実行する検証プラグインのインストールや、統合開発環境「IntelliJ IDEA」の設定について説明します。

CloudFormationのテンプレート記法のチェックを行うツールは2019年11月現在、いくつか種類がありますが、代表的なものとその特徴は以下の通りです。

名称 提供元 実行環境 説明
validate-templateコマンド AWS Amazon CLIコマンド CLIが提供するテンプレートの検証コマンドです。公式ページにも記述がある通り、テンプレートの構文を確認するためのもので、リソースに対して指定したプロパティの値などが有効であることを確認するためのものではありません
IntelliJ CloudFormationプラグイン IntelliJ ThirdParty IntelliJ IDEA IntelliJ IDEAで動作するテンプレート検証プラグインです。IDEAのみならずJetBrains社で提供されているIDEであれば動作します。ResourceTypeとPropertiesの定義/参照検証などを実行します。ただし、同プラグインでは、簡単な構文チェックなどは行えますが、必須/任意パラメータの有無などの検証はできません
cfn-python-lint AWS Pythonがインストールされた実行環境/各種エディタ Pythonがインストールされた環境で実行可能なテンプレート検証Linterです。必須/任意パラメータの有無などのテンプレートの検証機能に加え、エディタ上でコード補完/サジェスト機能があります。サポートするエディタとして、Atom、Emacs、NeoVim、SublimeText、IntelliJ IDEA、VisualStduioがあり、各々プラグインが提供されています

テンプレート記述を行う上で、特にお薦めなのがcfn-python-lintとIntelliJ CloudFormationプラグインです。以降では、これらのIntelliJ IDEAでの環境設定方法について解説します。

cfn-lintのインストールとIntelliJ IDEAでのプラグイン設定

cfn-python-lintは、AWS CLIコマンド同様、以下のようにpipコマンドでインストール可能です。

pip intall cfn-lint

インストール後、コマンドラインからcfn-lintコマンドで対象のテンプレートをパラメータに指定して実行できます。詳細はcfn-python-lintの公式サイトにある「BasicUsage」を参考にしてください。コマンドラインからも実行は可能ですが、IntelliJ IDEAのエディタ上でcfn-lintコマンドが動作するよう、IntelliJでプラグインのインストールを行います

IntelliJ IDEAのPreferenceメニュー > Plugins > Marketplaceタブでcfn-lintプラグインを検索し、インストールします。

cfn-lintプラグインをインストール

インストール後、IntelliJ IDEAの再起動を行い、同じくPreferenceメニュー > Other Settings > CFNLintで、Enableをチェックし、上記でインストールしたcfn-lintコマンドのパスを指定します。

cfn-lintコマンドのパスを指定

同様に、CloudFormation Pluginもインストールします。

CloudFormation Pluginをインストール

インストール後、再起動し、エディタ上でテンプレートを作成していくと、コード補完/サジェストやテンプレートのバリデーションが有効になります。

再起動後、テンプレートを作成するとコード補完/サジェスト機能などが有効化される

記載が誤っていると、下記のように自動でエラー検出され、該当箇所がハイライトされます。

エラー箇所は自動で検出/ハイライトされる

※ 本稿執筆時点のIntelliJ IDEAの最新バージョンは2019.2ですが、cfn-lintの最新版であるv0.1.6が正常に動作しない状態が続いているようです(参考:GitHub Issues「Incompatible with Intellij 2019.2 #7」)。筆者の手元の環境でIntelliJ 2019.1では正常に動作することを確認しているので、最新のFIX状況をチェックしながら環境構築を実施してください。

* * *

以上で、IntelliJ IDEAでテンプレートをチェックツールで検証しながら、効率的に実装できる環境が整いました。次回以降は、テンプレートの基本的な記述要領や、作成したテンプレートをIntelliJ上から実行するヘルパースクリプト、エラー発生時のデバッグの方法、マルチリージョン環境等含めテストを行う環境構築の方法について解説します。

著者紹介


川畑 光平(KAWABATA Kohei) - NTTデータ 課長代理

金融機関システム業務アプリケーション開発・システム基盤担当を経て、現在はソフトウェア開発自動化関連の研究開発・推進に従事。

Red Hat Certified Engineer、Pivotal Certified Spring Professional、AWS Certified Solutions Architect Professional等の資格を持ち、アプリケーション基盤・クラウドなどさまざまな開発プロジェクト支援にも携わる。2019 APN AWS Top Engineers & Ambassadors選出。

本連載の内容に対するご意見・ご質問は Facebook まで。

※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。

一覧はこちら

連載目次

もっと知りたい!こちらもオススメ

若手CTOが導く! テックカンパニー化に向けたDMM.comのエンジニア評価制度改革

若手CTOが導く! テックカンパニー化に向けたDMM.comのエンジニア評価制度改革

動画配信、オンラインゲームから太陽光発電まで、40以上のさまざまな事業を手がけるDMM.com。同社は昨年、技術志向のテックカンパニーへと変革していくため、「当たり前を作り続ける」というDMM TECH VISIONを公開した。

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で IT Search+ の人気記事をお届けします

会員登録(無料)

注目の特集/連載
[解説動画] Googleアナリティクス分析&活用講座 - Webサイト改善の正しい考え方
[解説動画] 個人の業務効率化術 - 短時間集中はこうして作る
ミッションステートメント
教えてカナコさん! これならわかるAI入門
知りたい! カナコさん 皆で話そうAIのコト
対話システムをつくろう! Python超入門
Kubernetes入門
AWSで作るクラウドネイティブアプリケーションの基本
PowerShell Core入門
徹底研究! ハイブリッドクラウド
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ
セキュリティアワード特設ページ

一覧はこちら

今注目のIT用語の意味を事典でチェック!

一覧はこちら

ページの先頭に戻る