【お試し】Amazon CodeWhispererをLambdaコンソールで使ってみた

2023-04-19

 

はじめに

 

※本記事は2023/4/18時点の情報です。ご覧になっているタイミングによってはアップデートによる差異があるかもしれません。

 

GitHub Copilotの対抗ともいえる Amazon CodeWhisperer がGAになりました!
しかも個人ユーザーは無料!メールアドレスだけで作れるBuilder IDがあれば使える!

 

早速VSCodeに導入して適当にLambdaを書かせようとしてみましたが、AIに思考を読まれている感じがしてちょっとゾクっとしました。

 

lambda_vscode

さすがにインスタンス作るまでは考えてなかったけど…

 

CodeWhisperer自体がどういうものかはこちらの記事が詳しくまとまっています。

Amazon CodeWhispererでどの程度コーディングが効率化できそうか試してみた

 

そんなCodeWhispererですが、AWSプラットフォーム内では「Lambdaコンソール」「Cloud9」でお試しすることができます。
こちらはBuilder IDもVSCodeなどの統合開発環境(IDE)も不要です。Cloud9もIDEだけど。

今回は「Lambdaコンソール」で試してみましたので、簡単に紹介します。


コンソールで試してみた

 

現時点では、バージニア北部リージョン(us-east-1)でのみ利用可能です。
東京リージョン(ap-northeast-1)で作成したLambda関数ではお試しできないので注意しましょう。

リージョン
CodeWhispererのコンソール自体もバージニア北部固定になっていますね。
現時点ではプロフェショナルプランにて組織のIAM Identity Centerと連携する場合にのみアクセスします。今回は用は無いのでLambdaにアクセスしましょう。

 

Lambda作成

簡単に設定してLambdaを作成してみます。
そういえばPython3.10が使えるようになってますね。

 

作成後、コードエディタの画面にて、Toolsを選択してみましょう。

Toolsで有効化

バージニア北部にだけ、「Amazon CodeWhisperer Code Suggestions」という項目が登場しています。

terms

選択するとこのようなTermsが出てきます。LambdaコンソールやCloud9での利用はBeta版のようですね。

Toolsに機能追加

Acceptすると、ようやくCodeWhispererの機能を使う準備が整いました!

 

基本的な流れとしては、コメントを記述した後、次の行で「option+C / Alt+C」コマンドを入力します。

とりあえずboto3をimportしてからクライアントを定義してみましょう。

suggestions1

おおー。
これくらいはね。

 

提案を受け入れる場合はTabキーまたはEnterキーで反映します。 VSCodeでは矢印キーで別の候補を出したり、command+矢印キーで部分的に承認したりができましたが、ここではできないようです。

 

suggestions2

ちょっと日本語は苦手っぽいようで。

 

もうちょっと頑張ってもらいましょう。

とりあえずRDSインスタンスの識別子とエンジンバージョンのセットが欲しいです!お願いします!

 

suggestions3

うんうん。

 

suggestions4

ダメなのかよ。

どうも日本語だとうまくいかないようなので、英語に直して再チャレンジです。

 

suggestions5

おっ、

suggestions6

おおー。

ちょっとお題が悪かった気もしますが、まあいいでしょう。
もう少し明確なものを作る際にちゃんとした英語を記述すれば、まともなコードを提案してくれると思います。
とりあえず今回はこのくらいで。

 


所感: 本当にお試し感覚で使おう

 

まだbeta版というのもありますが。

 

VSCodeで使用した場合と比べて一番気になるのは、 「1行ずつしか出力されない」 という点です。
たまに複数行の提案をしてくれることがありますが、毎行毎行コマンドを実行する必要があるので、かなり手間になってしまいます。

書いている途中でも、思考読みの如く勝手に何行も提案してくれるあの感覚が気持ちいいんですよね。脳内物質がたくさん出てきそうで。
それが無いのはちょっと面白味に欠けてしまう。

 

それに加え、リージョンの制約や、候補の選択、部分的な承認といった点での不便があるので、今回のようにLambdaコンソールで使うユースケースとしては、

  • 登録とかIDEとか面倒だからとにかく手っ取り早くCodeWhispererを試してみたい!
  • 会社のセキュリティ云々の都合でPCにIDEや拡張機能が入れられない…Builder IDも作っちゃダメだって…

のような場合に現状は限られるのではないかなと思います。

あまり知られていないのもあるけど、「Lambdaコンソールで使ってみた」系の記事が全然無いなと思ったんですよね。みんなVSCodeで使うよね。

 

「日本語の精度が良くない」「よく考えてコメントで指示する必要がある」といった点は他のモデルにも言えることかと思うので、人間側でなんとかしましょう。
英語は大事。

 


おわりに: CodeWhiepererへの期待

 

最後に少しだけ、CodeWhispererそのものに対する期待をつぶやきます。

せっかくのAWSサービスなので、特にJSONやYAMLを使って定義するようなサービス、具体的には

  • CloudFormationのテンプレート
  • Step Functionsステートマシンの定義
  • IAMのポリシー
  • Systems Managerのドキュメント

などの作成に役立つような進化をしてくれると非常に嬉しいです。
GUIやローコードの場面が増えてきたとはいえ、JSON/YAMLを使う場面は意外と多くて、事あるごとにChatGPTにトライ&エラーで質問しまくっているんですよね。
つい最近Pulumiというサービスも自然言語でIaCが作れるようになりましたし。

 

共感できる方、ぜひ一緒にフィードバックを送りましょう!!