1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【VS Code】Amazon CodeWhispererでLambda関数をコーディングしてみる

Last updated at Posted at 2023-04-26

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が動いていることを確認します。
image.png

VS Codeで適当なpythonファイルを開きます。
ファイルには何も書いてない状態です。
image.png

実装内容をコメントに記載します。
今回はS3のバケットを作成したいので、「Create Lambda Function creating S3 create Bucket」と書いて、
Alt+Cを押します。
image.png

以下のようにサジェスト(import boto3)が出てきました。
Tabキーを押すとサジェストが反映されます。
image.png

サジェストが反映されました。
この状態で改行してみます。
image.png

すると続きのサジェストが表示されました。
image.png

改行を続けてサジェストを受け入れ続けると、以下のようなコードが出来ました。
image.png

バケット名を、他バケットと被らない名前にします。
image.png

リージョンを指定する必要があるので、下図赤枠部分を追記します。
image.png

このコードをLambdaにデプロイしてテストします。
※LambdaのIAMロールには、S3のフル操作権限を付与しています。
image.png

処理が正常に完了しました。
image.png

S3にアクセスするとバケットが作成されています。
image.png

所感

コードをある程度書いてくれるので、自分で調べてコードを書く手間が省けるのはよいなと思いました。

一方で、コメントの書き方次第では、今回のように一部追記をする必要があります。
今回のケースではバケット作成先リージョンを追記しましたが、リージョンをコメントで明示すれば、そこを考慮したコードをCodeWhispererが書いてくれます。
image.png

あとほんとに動くかどうか検証する必要もあります(当然ですよね)。

参考資料

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?