LoginSignup
0
1

More than 1 year has passed since last update.

[AWS] SAMのtemplate.yamlをVSCode拡張機能で快適に記述する

Last updated at Posted at 2021-10-18

SAMのtemplate.yamlを記述する際に、公式ドキュメントを見ながら書くことが多かったのですが、あまりに非効率だったので環境を整えようと思いました。
VSCodeを利用しているので、VSCode前提のお話です。

続き↓

要約
CloudFormationの拡張機能を 使用&少しカスタマイズ してSAMテンプレートをサクサク書こう

SAMはCloudFormationの拡張

SAMテンプレートはCloudFormationテンプレートの拡張です。
参考:SAM公式ドキュメント

まず、CloudFormationで利用できる文法はSAMテンプレートでも利用することができます。
CloudFormationの拡張機能をVSCodeに導入すれば、CloudFormationで記載できる部分は導入できることになります。

image.png
CloudFormationの拡張機能は、無難にaws-scripting-guy.cformを入れておけば良いでしょう。

SAM独自の記述方法は独自にスニペットを記載していく

VSCodeでは独自にSnippetを記載することができます。
VSCodeの ファイル > ユーザー設定 > ユーザースニペット にて、独自のSnippetを記述可能です。
書き方の参考:snippetsの書き方

こちらで作成したxxxxxxxxx.code-snippetsで、例えば以下のように記載をします。

{
    "sam-lambda": {
        "prefix": "sam-lambda",
        "body": ["AWS::Serverless::Function"],
        "description": "Lambda Function"
    }
}

すると、このようにサジェストしてくれるようになります。
f0147b0b5ff679cf449f7b251a364019.gif

拡張機能でも同じように実現している

さて、ここからは余談です。
私が暇なときにやろうかなーと思っている話です。

拡張機能のスニペットも、先ほどと同じようにjsonファイルに記載して実現しています。
以下のリンクを見ていただければわかるかと思います。先ほど紹介したCloudFormationの拡張機能のgithubリポジトリです。
https://github.com/aws-scripting-guy/cform-VSCode/blob/develop/snippets/yaml-snippets.json

よって、SAMテンプレートも同様にスニペットの設定ファイルを記載し、VSCodeの拡張機能として出せば同じように使えるようになります。
現在SAMテンプレートの入力補完をしてくれるような拡張機能は、調べた限りでは1つしか存在せず、その1つも実用するには完成度が高くない感じでした。

なので、今後合間を縫ってこちらのsnippetsを作成していこうかと思っております。
今回は私としては中間報告的な記事でした。

参考資料

snippetsの書き方
BlackBelt SAMの回

続き↓

0
1
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
0
1