![[アップデート] AWS Toolkit for Visual Studio Code で Serverless Land のサーバーレスパターンを使ってアプリケーション作成ができるようになったようなので使い勝手を確認してみた](https://images.ctfassets.net/ct0aopd36mqt/wp-thumbnail-a8d25e3ba6e1f6354699184439e24d5f/6b55406271ae17038b9234c4cbd8babc/vscode-2020-eyecatch-1200x630-1.png)
[アップデート] AWS Toolkit for Visual Studio Code で Serverless Land のサーバーレスパターンを使ってアプリケーション作成ができるようになったようなので使い勝手を確認してみた
いわさです。
みなさん Serverless Land というものをご存知でしょうか。
AWS が提供する、サーバーレスコンピューティングに関する情報、リソース、ベストプラクティスなどを集めたポータルサイトです。
この中に Serverless Patterns Collection という AWS を使ったサーバーレス実装パターンのカタログがあるのですが、先日のアップデートで AWS Toolkit for Visual Studio Code からこのパターンを使ったサーバーレスアプリケーションの作成ができるようになりました。
数ヶ月前に AWS Toolkit for Visual Studio Code で SAM CLI の機能が GUI 統合されるアップデートがあったのですが、今回のアップデート若干被ってるような気もします。(VS Code からテンプレートを選択してサーバーレス開発を開始できるとう点で)
本日は実際の使い方と、SAM CLI との使い分けについて考察したので紹介したいと思います。
使い方
本機能を使うためには、AWS Toolkit for Visual Studio Code 拡張のバージョンを 3.48.0 以上にアップデートしておく必要があります。(本日時点の最新版は 3.49.0 でした)
開始方法ですがいくつかあります。
ひとつめは AWS Toolkit の Explorer 機能で Lambda コンテキストメニューから「Create application with Serverless template」を選択する方法です。
API Gateway だとダメで Lambda でだけできるというのが非常にわかりにくい気がしますが、そういうことになってます。
ただ上記以外にも方法がありまして、Application Builder のコンテキストメニューや、VS Code のコマンドパレットから Serverless と検索することで「Create application with Serverless template」が選択可能です。こっちはわかりやすいです。
対話形式でテンプレートの選択などを行っていきます。
Serverless Land のテンプレートは 900 以上あるそうなのですが、この機能を使って選択できるのはどうやら本日時点ではこの 3 パターンだけです。
テンプレートに続いてランタイムを選択します。
本日時点で提供されているテンプレートは全て Python、JavaScript、Java、.NET が利用できました。
ただ Serverless Land だと Go や Rust など他にもランタイムが存在しているので、そのあたりは今後のテンプレートのサポート具合によりそうでしょうか。
続いて IaC テンプレートを選択します。
本日時点で使える 3 つのテンプレートは SAM で提供されているものなので選択できるのは SAM だけです。
ここも Serverless Land だともっといろいろなフレームワークが選択できるのですが、後述します。
最後に保存先やプロジェクト名を決めて完了です。
作成後 README やらが確認できます。ここで内容が初めてわかるのですが「Hello Worlds AWS Lambda and Amazon API Gateway REST API」のテンプレートだったみたいです。
Serverless Land のカタログだと次のテンプレートですね。
テンプレートやコードの内容見た感じも一致していそうです。
本日時点で選択できるテンプレートがあとふたつあったと思いますが、Serverless Land だとそれぞれ次のテンプレートになります。
- Image Resizing : https://serverlessland.com/patterns/s3-lambda-resizing-python
- Process SQS Records with Lambda : https://serverlessland.com/patterns/sqs-lambda-python-sam
ちなみに VS Code 上でテンプレートを選択する際に次のアイコンから Serverless Land の対象テンプレートページを開くこともできます。
テンプレート選択前に内容を確認する必要があるなと感じたのでこれは使えそうです。
SAM CLI との違い
SAM CLI も初期テンプレートがいくつも提供されています。
今回の機能はそれらと重複しているような気もしますがどう棲み分けされるのでしょうか。
本日時点だと SAM のテンプレートが 3 つ提供されているだけなので、SAM CLI あるいは統合された GUI 機能を使う方向で良いのではないかなと思います。
しかし、今後もしこの拡張機能のテンプレートが充実していくと状況が変わってきそうです。
Serverless Land では SAM の他に CDK はもちろん、Pulumi や Terraform、Serverless Framework のテンプレートなども存在しています。
また、現状 AWS SAM CLI は頻繁に初期テンプレートが更新されています。
今後もし Serverless Land のテンプレートを取得するだけでよくなるとそちらのメンテナンス方針も変わるかもしれませんね。
さいごに
本日は AWS Toolkit for Visual Studio Code で Serverless Land のサーバーレスパターンを使ってアプリケーション開始できるようになったようなので使い勝手を確認してみました。
私は検証の時などによく SAM CLI の init テンプレートを使っています。
本日時点ではまだこちらの拡張機能を使いたいというほどのテンプレートが揃っていないですが、今後テンプレートが充実してくると SAM CLI などの初期テンプレート機能を上回ってくる可能性があるなと感じました。
ということで、この機能のバージョンアップ状況はウォッチしておきたいですね。