Amazon CodeWhispererでAWS CLIのコマンドをtext to commandしてみる
ども、大瀧です。
本日Amazon CodeWhispererの新機能としてAmazon CodeWhisperer for command line(preview)がリリースされました。シェルコマンドラインにまつわる様々な操作をAIが自然言語ベースでサポートしてくれるということで、本ブログではAmazon CodeWhisperer for command lineのセットアップと英語、日本語のテキスト文章からAWS CLIのコマンドラインを生成してみた様子をご紹介します。
Amazon CodeWhisperer for command line のセットアップ
- 動作確認環境 : macOS Ventura 13.6.1
Amazon CodeWhisperer for command lineは現在プレビュー版のため、本番環境での使用はできず、今後仕様が変更される可能性があります。 現時点ではmacOSのみサポートされ、macOSのインストーラファイル形式であるdmgファイルで公開されています。セットアップ手順は以下のドキュメントにあります。
まずは手順1のリンクからインストーラをダウンロードし実行します。一般的なmacOSアプリのインストールと同様、Applicationsフォルダへのコピーを促されるので、ドラッグアンドドロップでインストールします。
これでインストールは完了です。 LanchpadからCodeWhispererをクリックするとCodeWhispererが起動します。[Get started]をクリックして初期設定を進めましょう。
シェル統合のインストールが促されるので[Install]で実行します。
続いてmacOSのセキュリティ機能であるアクセシビリティの有効化を促されるので、[Enable]ボタンをクリックします。
CodeWhispererのスイッチをオンにします。
これでOKです。OS設定画面を閉じてCodeWhispererアプリの画面に戻り、[Sign in]ボタンをクリックします。 *1
Webブラウザに切り替わり、AWSとの連携ページに遷移します。AWSアカウントで認可するためのコードが表示されるのでメモしておき *2、Comfirm and continueをクリックします。
AWS Builder IDの作成画面では、AWS Builder IDを作成します。既にIDを持っている場合は画面下方のサインインボタンからサインインしましょう。今回は未作成だったので、メールアドレスを入力して[次へ]から作成を進めました。
メール認証に進むので入力したメールアドレスのメールボックスを確認し、届いているメール記載の認証コードを入力、[認証]をクリックします。
パスワードを設定しAWS Builder IDの作成とログインは完了です。最後にデータアクセスの許可画面が表示されるので[Allow]をクリックして初期設定は完了です。
動作確認とAWS CLIのコマンド生成
初期設定が完了するとCodeWhispererアプリのメインメニューが表示され、ターミナルでのコマンド補完を促すメッセージが表示されます。
今回はiTerm2を実行してみました。CodeWhispererのText to Command lineは cw
コマンドで実行できるので、入力してみると...
入力候補がカーソルのすぐ下に表示されました。かっこいいですね。 cw ai
に続けて文章を書き込むとコマンドラインに変換してくれるとのことで、試しに create lambda function in tokyo region
と入れてみると...
% cw ai create lambda function in tokyo region Translate English to Shell commands. Run in any shell. Shell · aws lambda create-function --function-name $FUNCTION_NAME --runtime $RUNTIME --role $ROLE --handler $HANDLER --zip-file fileb://$ZIP_FILE --region $REGION ⚡ Execute command ❯ 📝 Edit command 🔄 Regenerate answer ❓ Ask another question ❌ Cancel
おおー、それらしいAWS CLIコマンドに引き当ててくれました。メニュー選択になるので、[📝 Edit command]
を選択すると表示されたコマンドラインがそのまま入力として差し替えられる形になります。
変数が目に付いたので、もうちょっと文章に条件を追加して再実行してみます。
% cw ai create lambda function named test zipped in file:///lambda.zip in tokyo region Shell · aws lambda create-function --function-name test --runtime nodejs --role XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --handler index.handler --zip-file fileb:///lambda.zip --region tokyo ❯ ⚡ Execute command 📝 Edit command 🔄 Regenerate answer ❓ Ask another question ❌ Cancel
お、オプションが増えましたね。コマンドラインの使い方がわからないところから自然言語で書いてとっかかりを掴むのがメインのユースケースに見えたので、あまりオプションの厳密性にこだわるのも良くないのかも知れません。
ちなみに、日本語も試してみると...
% cw ai 東京リージョンでtestという名前のラムダ関数を作成する Shell · aws lambda create-function --function-name test --runtime nodejs8.10 --role XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --handler index.handler --zip-file fileb://index.zip ❯ ⚡ Execute command 📝 Edit command 🔄 Regenerate answer ❓ Ask another question ❌ Cancel
おー、バシッと出してくれましたね。良い感じです。
まとめ
Amazon CodeWhisperer for command lineでテキスト文章からコマンドラインの生成を試してみました。AWSサービスの増加に伴いAWS CLIもかなり複雑になっていますので、CodeWhispererの力を借りて生産性をあげていくと良さそうです。