Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS CodeWhispererを利用してHCLのコーディングをしてみた

AWS CodeWhispererを利用してHCLのコーディングをしてみた

tora-kanazawa

March 06, 2024
Tweet

Other Decks in Technology

Transcript

  1. Copyright (C) 2022 Toranoana Inc. All Rights Reserved. AWS CodeWhisperer

    を利用して HCLのコーディングをしてみた とらのあなラボ かなざわ 1
  2. Copyright (C) 2022 Toranoana Inc. All Rights Reserved. 自己紹介 名前:金澤 弘太(かなざわ こうた)

    出身:神奈川県 とらラボ歴:2022年~ 趣味:ゲーム(音ゲー、パズル) 好きな技術:IaC、クラウド(AWS) 担当:社内インフラ構築・管理    情報システム管理 2
  3. Copyright (C) 2022 Toranoana Inc. All Rights Reserved. AWS CodeWhisperer

    3 2023年4月、AWS から AI を利用したコーディン グ支援サービスとして AWS CodeWhisperer がGA されました。 CodeWhisperer のプログラミング言語 Python、Java、JavaScript、TypeScript、C# の サポートに加え、Go、Rust、Kotlin、Scala、 Ruby、PHP、SQL、C、C++、シェルスクリプト あ、HCL (tf) が無い。。
  4. Copyright (C) 2022 Toranoana Inc. All Rights Reserved. AWS CodeWhisperer

    4 HCL(Hashicorp Language)がサポートされました! ▪ AWS https://aws.amazon.com/jp/about-aws/whats-new/2 023/11/amazon-codewhisperer-new-enhancements/ ▪ HashiCorp https://www.hashicorp.com/blog/accelerate-your-ter raform-development-with-amazon-codewhisperer
  5. Copyright (C) 2022 Toranoana Inc. All Rights Reserved. AWS CodeWhisperer

    5 CodeWhisperer には2つのTierがあります。 - 個人(Indivisual) - プロフェッショナル(Professional) ユースケースとして、Individual は個人レベル で、Professional は組織レベルで使用することが 想定されています。 プラン
 個人
 プロフェッショナル
 料金
 無料
 $19/月
 ログイン方法
 Builder ID
 IAM Identity Center
 対応言語
 すべて
 すべて

  6. Copyright (C) 2022 Toranoana Inc. All Rights Reserved. AWS CodeWhisperer

    6 ▪ バージョン情報 Visual Studio Code: 1.86.2 AWS Tool Kit: v2.11.0
  7. Copyright (C) 2022 Toranoana Inc. All Rights Reserved. AWS CodeWhisperer

    - Builder IDの取得 7 Individual プランで使用を開始してみます。 最初は Builder ID の取得から開始します。 Builder ID は個人に紐づくプロファイルで、AWS アカウントに紐づきません。 右記のとおり、Eメールアドレスを使用して Build ID を取得します。
  8. Copyright (C) 2022 Toranoana Inc. All Rights Reserved. AWS CodeWhisperer

    - AWS ToolKit の導入 8 Build ID を作成後、ID を利用して実際にコードを 書くエディタに、コード補完できるように設定し ていきます。 VSCodeの場合は、拡張機能の AWS ToolKit から 設定します。
  9. Copyright (C) 2022 Toranoana Inc. All Rights Reserved. AWS CodeWhisperer

    - AWS ToolKit から登録 9 ToolKit 導入後、先ほどの Build ID プロファイル を紐づけます。 ToolKit を導入すると、CodeWhisperer - Build ID を紐づける画面が表示されるので、ここから 進めます。
  10. Copyright (C) 2022 Toranoana Inc. All Rights Reserved. AWS CodeWhisperer

    - AWS ToolKit から登録 10 紐づけが完了すると、右記の画面が表示されます。
  11. Copyright (C) 2022 Toranoana Inc. All Rights Reserved. AWS CodeWhisperer

    触ってみる 11 AWS S3バケットを利用した静的 Web サイトを作成するように進めていきます。 まずは S3 バケットを作成してほしいので、そのように CodeWhisperer に指示します。 指示は “//” でコメントを記載するように行います。
  12. Copyright (C) 2022 Toranoana Inc. All Rights Reserved. AWS CodeWhisperer

    触ってみる 13 自動(感動ポイント) 手動 手動
  13. Copyright (C) 2022 Toranoana Inc. All Rights Reserved. AWS CodeWhisperer

    触ってみる 14 ここまでのまとめ • CodeWhispererでHCLがサポートされコードの提案ができるようになった。 • 日本語の指示にも対応できている。 • 与えられた指示に応答するのみでなく、好ましい設定の提案もするようになっていた。
  14. Copyright (C) 2022 Toranoana Inc. All Rights Reserved. AWS CodeWhisperer

    触ってみる 15 Terraform 1.6 で機能が追加された “test” コマンドが提案されるかどうか確認してみます。 run “sets_correct_name” { variables { bucvket_name = “test-bucket-name” } assert { condition = aws_s3_bucket.my_bukcet.bucket == “test-bucket-name” error_message = “invalid bucket name” } }
  15. Copyright (C) 2022 Toranoana Inc. All Rights Reserved. AWS CodeWhisperer

    触ってみる 16 厳しそうでしょうか…。
  16. Copyright (C) 2022 Toranoana Inc. All Rights Reserved. AWS CodeWhisperer

    触ってみる 17 例文を提示してあげたところ、 バケットのアクセスリストを検証するテストコードを提案いただけました。たすかります。 例文 を 提示 提案 いただけ た!!
  17. Copyright (C) 2022 Toranoana Inc. All Rights Reserved. AWS CodeWhisperer

    - 補足 18 VSCode では画面下部にステータスが表示されま す。 - AWS Build ID - CodeWhisperer それぞれのステータスが表示されています。 CodeWhisperer 動作中は右図のように、 CodeWhisperer の左がくるくる処理中アイコン になります。
  18. Copyright (C) 2022 Toranoana Inc. All Rights Reserved. AWS CodeWhisperer

    - 補足 19 セキュリティポリシーとして以下2点を紹介します。どちらも VSCode Setting より設定可能です。 ① コンテンツの共有の停止 ② テレメトリの送付の停止
  19. Copyright (C) 2022 Toranoana Inc. All Rights Reserved. AWS CodeWhisperer

    触ってみる 20 ▪まとめ • Terraform (HCL)でも AWS CodeWhisperer の 恩恵に預かれるようになった。 • 簡単なリソース作成を試して、コードを生成することを確認し た。 • Terraform の知識が必要なことには変わりない。 • 現時点でコメントの指示による生成は課題があるが、テスト コードの生成も可能。 • コード規約やリソース名の付け方などを指定したい。 ◦ リソース名は既存のリソース名を参考に推論で出してくれ たりするのか。それとも明示的にできるのか。 ◦ AWS CodeWhisperer 自体の画面が非常に簡素なので、その 辺の設定が追加されると嬉しい。