VSCodeでAWS CloudFormation をYAMLで書くための個人的ベスト設定

公開日:2018-11-11
最終更新:2018-11-11
※この記事は外部サイト(https://qiita.com/yoskeoka/items/6528571a4...)からのクロス投稿です

AWS DevDay 2018 AfterPartyの人気エディタ投票で1位になったVSCodeでCloudFormationを書くための個人的ベストな設定を紹介します。

AWSコンソールにもJSON, YAML両方に対応したエディタがありますが、チェック機能の安心感はあるもののエディタとしての使い勝手では、どうしても普段使うエディタに劣ります。

普段使いのVSCodeにCloudFormationをYAMLで書くための設定を導入しましょう。

導入するもの

YAML Support by Red Hat

code コマンドを使えば、一発です。

code --install-extension redhat.vscode-yaml

設定1

settings.json に以下の設定を追加します。 最近のVSCodeは設定画面をUIで出すようになったので、右上にある・・・ からsettings.jsonを開くか、 コマンドパレットを開いて >settings (JSON) と打ち込んでsettings.jsonを開きます。

    "yaml.schemas": {
        "https://d33vqc0rt9ld30.cloudfront.net/latest/gzip/CloudFormationResourceSpecification.json": [
            "*.cf.yaml",
            "*.cf.yml",
            "cloud*formation/*.yaml",
            "cloud*formation/*.yml"
        ]
    },

https://d33vqc0rt9ld30.cloudfront.net/latest/gzip/CloudFormationResourceSpecification.json をYAMLスキーマとして登録しています。 これは、AWS CloudFormationリソース仕様のアジアパシフィック (東京)へのリンクです。 このリソース仕様をファイル名が *.cf.yml または cloud-formation ディレクトリ以下のyamlファイルの場合に適用するという風に設定しています。

この辺りはCloudFormationファイルにどういった名前をつけるかの好みによるので、適宜変更して下さい。

設定1だけの問題点

!Ref などのカスタムタグを書いた箇所がunknown tag <!Ref>エラーに!!!

YAMLサポート拡張がCloudFormationで使える!Refなどのカスタムタグに対応していないのが原因です。

設定2

カスタムタグをYAMLサポート拡張に教えます。 以下の設定をsettings.json に追加します。

    "yaml.customTags": [
        "!Ref",
        "!Sub",
        "!Join sequence",
        "!FindInMap sequence",
        "!GetAtt scalar sequence",
        "!Base64 mapping",
        "!GetAZs",
        "!Select sequence",
        "!Split sequence",
        "!ImportValue",
        "!Condition",
        "!Equals sequence",
        "!And",
        "!If",
        "!Not",
        "!Or"
    ],

結果

これでカスタムタグの問題に対応しつつ、YAMLサポートとAWS CloudFormationスキーマチェックをVSCodeで行える環境を手に入れました。

CloudFormationファイルの書き方自体は、下記の記事などが参考になります。

記事が少しでもいいなと思ったらクラップを送ってみよう!
73
+1
@yoskeoka'の技術ブログ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする