Amazon CodeWhispererとは
AWSのコーディング支援サービスです。
コメントにやりたいことを書くだけで、それを実現するコードを自動生成します。
機械学習の仕組みが裏で動いているようです。
以下は公式サイトの一部抜粋です。
CodeWhisperer は数十億行のコードでトレーニングされており、コメントや既存のコードに基づいて、スニペットから完全な関数まで、さまざまなコードの提案をリアルタイムで生成できます。
というわけで実際に触ってみました。
やること
CodeWhispererを使ってLambda関数を作成します。
Lambda関数の内容は以下です。
S3にバケットを作成
環境情報
OS:Windows 10
IDE:VS Code
言語:Python
事前準備
以下記事を参考にCode Whispererの実行に必要な準備をします。
https://qiita.com/masakinihirota/items/52d3fad3aea8300d391f
Code WhispererでLambda関数をコーディング
ここから実際にコードを書いていきます。
コードを書く前に、VS Code上でCodeWhispererが実行状態であることを確認します。
VS CodeのAWSアイコンをクリックし、CodeWhispererが動いていることを確認します。
VS Codeで適当なpythonファイルを開きます。
ファイルには何も書いてない状態です。
実装内容をコメントに記載します。
今回はS3のバケットを作成したいので、「Create Lambda Function creating S3 create Bucket」と書いて、
Alt+Cを押します。
以下のようにサジェスト(import boto3)が出てきました。
Tabキーを押すとサジェストが反映されます。
改行を続けてサジェストを受け入れ続けると、以下のようなコードが出来ました。
リージョンを指定する必要があるので、下図赤枠部分を追記します。
このコードをLambdaにデプロイしてテストします。
※LambdaのIAMロールには、S3のフル操作権限を付与しています。
所感
コードをある程度書いてくれるので、自分で調べてコードを書く手間が省けるのはよいなと思いました。
一方で、コメントの書き方次第では、今回のように一部追記をする必要があります。
今回のケースではバケット作成先リージョンを追記しましたが、リージョンをコメントで明示すれば、そこを考慮したコードをCodeWhispererが書いてくれます。
あとほんとに動くかどうか検証する必要もあります(当然ですよね)。
参考資料