Amazon Code Whisperer を CLI から使ってみる+ IAM Identity Center を利用した Amazon Code Whisperer の設定方法 - サーバーワークスエンジニアブログ

Amazon Code Whisperer を CLI から使ってみる+ IAM Identity Center を利用した Amazon Code Whisperer の設定方法

記事タイトルとURLをコピーする

みなさん、こんにちは。AWS CLI が好きなテクニカルサポート課の市野です。

いよいよ 2023 年の re:Invent が開催されますが、例年通り re:Invent 期間中の発表対象とならなかった各種アップデートのラッシュが始まってきました。

そんななか CLI 好きとしては放っておけない発表がありましたので紹介いたします。
なお、エントリ執筆時点では Preview となっているため、取り扱いにはご留意いただきたく思います。

What's New での発表

発表内容は以下の通りです。

aws.amazon.com

Introducing Amazon CodeWhisperer for command line (preview)

Posted On: Nov 20, 2023

Today, AWS announces the preview of Amazon CodeWhisperer for command line. CodeWhisperer now helps developers be more productive in the command line with contextual CLI completions and AI natural-language-to-bash translation.

The command line is used by more than 30M engineers to write, build, run, debug, and deploy software. Despite how critical it is to the software development process, the command line is notoriously hard to use. CodeWhisperer for command line adds the modern features you expect from developer tools to your existing command line and augments them with AI. It offers two core capabilities 1/ CLI completions — as developers type in the command line, CodeWhisperer adds typeahead code completions and inline documentation for 500+ popular CLIs such as Git, npm, Docker, MongoDB Atlas, and the AWS CLI. and 2/ natural language-to-bash translation — developers can run the cw ai command, write a natural language instruction such as “download data from my s3 buckets to my desktop”, and Amazon CodeWhisperer will translate it to an instantly executable shell code snippet.

Amazon CodeWhisperer is an AI powered productivity tool for the IDE and command line. CodeWhisperer for command line is available on macOS for all major shells (bash, zsh, and fish) and major terminal emulators such as Terminal, iTerm2, Hyper, and the built-in terminals in Visual Studio Code and JetBrains.

Download and set up CodeWhisperer for command line in just minutes from our product page.

前提条件と注意点

  • エントリ執筆時点(2023-11-26)では Preview 扱いであるため、今後の開発状況によっては変更がある可能性があります。
  • コマンドライン用の CodeWhisperer アプリケーションは、エントリ執筆時点では Mac OS 向けのみの提供となっています。
  • CodeWhisperer の利用には、個人向けの Builders ID か、AWS Organizations と統合した IAM Identity Center の利用が必要となっています。
  • 同じく re:Invent 2023 期間前に発表された AWS Organizations との統合を必要としないアカウントインスタンス の作成による IAM Identity Center で作成可能なアカウントインスタンスを用いた IAM Identity Center には、執筆時点では未対応でした。

IAM Identity Center を利用した Amazon CodeWhisperer の設定手順

前提条件として、AWS Organizations、IAM Identity Center のセットアップはすでに完了しているものとします。

Amazon CodeWhisperer サービスページへの移動

執筆時点ではバージニア北部リージョンのみで提供されているサービスのため、東京リージョンで表示させると未対応リージョンである旨の表示とサポートしているリージョンの案内(リンク)が表示されます。

適切なリージョンの選択

誘導されるまま、バージニア北部リージョンへ移動します。
「Get started」ボタン、「Try it for free」ボタンが表示されています。

「Get started」ボタンをクリック

ページの説明を読む限り、「Try it for free」ボタンは個人開発向けの設定とみられ、クリックすると現時点で無料となる Builders ID を利用した設定画面へ遷移します。

今回は前提で述べた通り、今回は AWS Organizations、IAM Identity Center をセットアップ済みアカウントで組織として設定してみることとして、「Get started」ボタンをクリックしてみます。

すぐに IAM Identity Center のユーザー(またはグループ)を Amazon CodeWhisperer に追加する画面に遷移します。

IAM Identity Center ユーザーの選択

既存のユーザーをひとつ選んでみると、即座に「Cost and subscription count 」セクションのサブスクリプション数と課金額が反映されます。
執筆時点では、1ユーザーあたり 19 USD でした。

なお、公式ページの案内では、月の途中で利用を開始した場合は日割り計算されるようです。

aws.amazon.com

このまま、ページ下部の「Set up CodeWhisperer」ボタンをクリックします。

Identity Center ユーザーでの、SSO URL ログイン

設定完了後、割り当てられた側の Identity Center ユーザーで SSO ログイン後のページを確認すると、CodeWhisperer 用のボタンが生成されていることが確認できます。

ただし、該当のボタンをクリックしても、CodeWhisperer の製品ページへ遷移するだけの状態でした。

CodeWhisperer アプリの設定

アプリケーションのダウンロード

公式ページ に記載されている URL からインストーラをダウンロードします。

アプリケーションのインストール

インストールは、CodeWhisperer.dmg を展開後、アプリのアイコンを Applications ディレクトリへドラッグ&ドロップするだけです。

なお、以下のコマンドを実行することで、コード署名を確認できるようです。
注意)執筆時点でドキュメント中のアプリケーション名にスペルミスがあります。(e が抜けています/AWS へはフィードバック済)

codesign -v /Applications/CodeWhisperer.app

少しわかりづらいですが、上記コマンド実行後 何も値が返却されなければ OK のようです。

アプリケーションの起動

アプリケーションを起動すると、「Sign in」を求められます。
ただし、このボタンは先述の Builders ID を用いた個人向けのサインインに進むため、IAM Identity Center のユーザーの場合は、下の「Pro account? Switch to IAM Identity Center」をクリックする必要があります。

IAM Identity Center の情報の入力

「Pro account? Switch to IAM Identity Center」をクリックすると、IAM Identity Center の情報入力を求められます。

SSO の Start URL、IAM Identity Center ディレクトリが存在する AWS リージョンを入力し、「Sign in」ボタンをクリックします。

認証コードの確認

IAM Identity Center の情報を入力後、Sign in すると、認証の確認ページへ遷移します。 表示されているコードを確認し、「Confirm and continue」ボタンをクリックして先に進みます。

続けて、CodeWhisperer がアクセスするユーザーのデータについての説明があります。
内容を確認し「Allow」ボタンをクリックします。

CodeWhisperer が IAM Identity Center のユーザーにアクセスできるようになったことが表示されます。
ブラウザのウィンドウを閉じて CodeWhisperer アプリケーションに戻ると利用が開始できると記載があります。

アプリケーション側での操作

WEB ブラウザでの認証を得た後、CodeWhisperer アプリケーションに戻ると Failed to login と表示されエラーメッセージが表示されました。  

キーボードの + R キーを押してリロードすることで、ログイン状態に遷移しました。

触ってみる

入力補完

AWS CLI の設定によっては、従来も tab キーによる補完がありましたが、aws と入力を始めて space キーを入力すると即座に入力候補がグラフィカルに出てくれます。 CodeWhisperer_AutoCompletions.gif

cw ai でのコマンド生成 - bash の for 文を作ってみる

私の拙い英語を直接入力し、1 から 100 までを表示させる シェルスクリプトを作ってみました。
正しく生成されていて、問題ないと判断したら、Execute command を選択し、Enter キーを入力するとそのままコマンドを実行できます。 cw_ai-01.gif

cw ai でのコマンド生成 - プロンプトを日本語で入力してみる

プロンプトに日本語を使用してどうなるかをやってみました。
結果を見ると、正しく aws ec2 create-vpc サブコマンドが生成されました。 cw_ai-02.gif

おわりに

執筆時点ではまだ preview ですが、うまく活用することで生産性が上がりそうな予感がしています。

re:Invent 開催期間の発表から漏れたサービスでしたが触ってみるとワクワクするサービスで、いよいよ開催される re:Invent ではこれをさらに上回るサービスがリリースされると思うと楽しみですね。

この記事がどなたかのお役に立てば幸いです。

ではまた。

市野 和明 (記事一覧)

マネージドサービス部・テクニカルサポート課

お客様から寄せられたご質問や技術検証を通じて得られた気づきを投稿していきます。

情シスだった前職までの経験で、UI がコロコロ変わる AWS においては GUI で手順を残していると画面構成が変わってしまって後々まごつくことが多かった経験から、極力変わりにくい AWS CLI での記事が多めです。

X(Twitter):@kazzpapa3(AWS Community Builder)