プレビュー

前回からCloudFormationテンプレートの作成をはじめました。
テキストエディタで記述する際に便利なプラグインもありますのでそれを設定してCloudFormationテンプレートを記述してみましょう!
Visual Studio Codeの利用
マイクロソフトが提供するVisual Studio Codeですが、拡張機能が豊富にあります。

CloudFormationテンプレート作成についても、便利なプラグインがありますので使っていきましょう!
Visual Studio Codeの拡張機能をインストールする
VisualStudioCode(以後、VScode)をインストール後、左パネルより拡張機能がインストールできます。

検索ボックスに「CloudFormation」と入力し、拡張機能を検索します。

検索後は、インストール作業を行います。

拡張機能の設定を行う。
拡張機能のインストール後、若干設定が必要になります。

Windowsの場合には、CTRL + SHIFT + P
Macの場合には、Command + P
上記のショートカットを押して設定ファイルを呼び出すウィンドウを表示します。

「Settings.json」と入力して、規定の設定ファイルを呼び出します。

settings.jsonファイルが開きます。

注意
間違えて「defaultsettings.json」ファイルを開かないようにしてください。
settings.jsonの記入内容
json形式で記述されています。

「,(カンマ)」で区切られた間に設定内容を入力していきます。今回は以下のカンマの後に設定項目を入力してみます。


拡張機能にて説明があった、設定内容は以下の通りです。
"yaml.customTags": [
"!And",
"!And sequence",
"!If",
"!If sequence",
"!Not",
"!Not sequence",
"!Equals",
"!Equals sequence",
"!Or",
"!Or sequence",
"!FindInMap",
"!FindInMap sequence",
"!Base64",
"!Join",
"!Join sequence",
"!Cidr",
"!Ref",
"!Sub",
"!Sub sequence",
"!GetAtt",
"!GetAZs",
"!ImportValue",
"!ImportValue sequence",
"!Select",
"!Select sequence",
"!Split",
"!Split sequence"
],
設定ファイルに追記してみました!

上記はCloudFormation内で使えるCloudFormationカスタムタグについての記述でした。
次は特定の拡張子の時に、YAML形式で扱うようにスキーマ設定を行います。空いているスペースで追記します。

追記する内容は以下の通りです。
"yaml.schemas": {
"https://d33vqc0rt9ld30.cloudfront.net/latest/gzip/CloudFormationResourceSpecification.json": [
"*.cf.yaml",
"*.cf.yml",
"*.cfn/*.yaml",
"*.cfn/*.yml",
"cloud*formation/*.yaml",
"cloud*formation/*.yml"
]
},
上記の内容はCloudFormationリソース仕様のテキストファイルになります。
そのリソース仕様のjsonファイルを参照し、YAML形式で記述する時に利用する設定内容となっています。
上記で設定が終わりましたので保存し、一旦VScodeを終了します。
VScodeでテンプレートを記述してみる
それでは早速テンプレートを記載していきます。まずは作業用のフォルダを作成します。

そのフォルダをVScodeで開きます。

ファイルを新規で作成します。「vpc.yml」と設定してみます。

エディタ部分で記述をしていきますが、リソース名の一部を入力すると補完機能が働きます。


また「start」と入力しEnterキーを押すと各セクションが自動的に記述されます。


他のPluginもインストールする
他の拡張機能もインストールしましょう!まずはYAMLテンプレートにてインデントを見やすくするために、indent-rainbowを追加して下さい。

indent-rainbowをインストールすると下図のようにインデントが非常に見やすくなります。

次にテンプレート内容の見直しと他のユーザーと共同作業を行うための拡張機能、Live Shareもインストールしましょう!

Live Shareを用いると共同作業が劇的に改善します。

まとめ
今回は入力補完を行うPluginを用いてテンプレート記載の効率化を図りました。
他にもPythonやpip環境が必要にはなりますが、cfn-linterという拡張機能もあります。

統合開発環境によって便利な拡張機能がいろいろありますので、自分の好みにあったテキストエディタ環境を整えて見て下さい。
次はサブネットやインターネットゲートウェイ、ルートテーブルなどを追記していきましょう!