ちょっと話題の記事

AWS Toolkit for VSCodeがCloud Control APIに対応し、従来Toolkit側でサポートされていなかった様々なリソースの操作が可能になりました

2021.11.07

いわさです。

AWS Toolkit for Visual Studio Code ではVisual Studio Code上でAWSリソースの操作やアプリケーションのデプロイなどを行うことが出来るVisual Studio Codeの拡張機能です。

この拡張機能がCloud Control APIに対応しました。
従来AWSリソースごとにインターフェースがバラバラでしたが、Cloud Control APIがラッパーとして共通インターフェースを提供しリソース毎のインターフェース差分を吸収することで、基本的なリソースのCRUD操作に関しては外部からは共通インターフェースで操作することが出来るようになりました。

現時点でAWS Toolkit for VSCodeでは10前後のサービスに対応していますが、今後基本的なCRUD操作に限ってはCloud Control APIを通すことでサポートされているリソースが全て操作可能になりました。

何が追加されたのか

EXPLORERペインに新たにResourcesグループが追加されています。
リソースタイプごとに有効化することで、有効化されたタイプのリソースを取得し参照することが出来ます。
ここではRoute53::HostedZoneDeviceFarm::Projectを有効化しました。

Route53はどのリージョンでも有効化し参照出来ますが、DevideFarmについてはus-east-2リージョンでのみ有効化出来ます。

こちらが登録済みのRoute 53ホストゾーンの参照情報です。

こちらは登録済みDevice Farmプロジェクトの参照情報です。

コンテキストメニューを確認するとコピーと参照機能のみ提供されている状態です。

リソースの作成・更新・削除

参照だけでなく作成や更新・削除も行いたい場合は拡張機能の設定で有効化が必要です。

なお、参照以外の機能は現時点ではプレビュー的な位置づけとなっているため、問題が発生する可能性があり、また今後削除される可能性もあります。
以下に注意事項が記載されていますので事前によく確認してください。

また、気になった点はどんどんフィードバックしましょう。

編集

機能を有効化すると、表示リソースに対して、UpdateDelete操作が出来るようになります。
Previewでは読み取り専用モードでエディターが展開されていましたが、Updateでは編集が可能です。

各プロパティについては、読み取り専用のものや新規作成時にのみしか利用出来ないプロパティが存在します。
利用した場合は無視されます。

ここでは、編集可能なHostedZoneConfig.Commentを編集してみます。
なお、エディタの編集状態を確定(保存操作)した瞬間にクラウドリソースに対して更新操作が発生します。
リソースごとに差異があると思いますが、ホストゾーンの編集では更新完了まで1分ほど必要でした。

マネジメントコンソールを見てみると、変更が反映されていることが確認出来ます。

作成

作成はリソースタイプのコンテキストメニュからCreateを選択します。
選択するとブランクのJsonデータが表示されるので、ここでは先程編集に使ったRoute 53ホストゾーンからコピーしてきてNameのみ変更してみます。

こちらも、保存操作を行った瞬間にリソース作成処理が実行されます。

実行後、指定出来ないプロパティがAWS上で設定された値に変更されていることが確認出来ます。
ここでは、ホストゾーンIDやNSレコードが対象です。

マネジメントコンソール上でも作成されていることが確認出来ました。
後ほどCloudTrailで確認してみますが、最終的にはCreateHostedZoneが実行される形なので、不整合などは起きておらず自動作成・設定される部分もしっかり動いていますね。

CloudTrail

最後に、CloudTrailを確認してみます。

東京リージョンの履歴を確認してみると、Cloud Control APIのCreateResourceUpdateResourceが実行されていることが確認出来ます。

また、バージニアの履歴を確認してみるとリソース個別のAPIである、UpdateHostedZoneCommentCreateHostedZoneが実行されていることも確認出来ました。

さいごに

本日は、AWS Toolkit for VSCodeの新機能であるCloud Control API操作機能を通して、Route 53リソースの編集と作成を行いました。

基本的なCRUD操作についてはまったく問題のない使い勝手だと思います。
本拡張機能の強力な部分はデプロイ機能だと思いますが、そこまでは利用出来ないのは仕方ないですね。

また、Cloud Control APIで対応していないリソースも扱うことは出来ないのでその点もご注意ください。
例えば、QuickSightなどです。

編集・作成などは現在プレビュー的な位置づけとされているようですが、Cloud Control APIのシンプルなインターフェースに則っているので、VSCode側の拡張機能としてはあまり心配なさそうだと個人的には思っています。