「生成AIを活用したTerraformワークフロー ~ HCP Terraform × Claude Code ~」というタイトルで社内勉強会で登壇しました
「生成AIを活用したTerraformワークフロー ~ HCP Terraform × Claude Code ~」というテーマで社内勉強会に登壇しました。
本記事では、資料を共有します。
登壇資料
デモ
デモ内では、Claude Codeによる以下の動作を見てもらいました。
- Issueの内容取得からTerraformコード生成
- Sentinelポリシーチェックの失敗内容に対する修正
- Pull Request作成
構成図は以下です。
デモ用のGitHubリポジトリを用意しました。ここにはVPC用のコードが置いてあります。
HCP Terraformとこのリポジトリは連携しており、VPCをHCP Terraform経由でデプロイ済みです。
Claude Codeに実装してもらうため、以下のIssueを用意しました。
VPC内にEC2を追加するという内容です。
ローカルでClaude Codeのカスタムスラッシュコマンドを実行します。この際に、先程のIssueのURLを渡します。
カスタムスラッシュコマンドの中身は以下です。
terraform-issue
/terraform-issue <issue-url>
以下のようにClaude Codeが実装を行います。
Sentinelポリシーチェックの失敗時の動作も見たいため、あえて失敗するSentinelポリシーを仕込んでおきました。
デモ用のタグがEC2に付与されているか確認するポリシーです。
このタグの存在についてはカスタムスラッシュコマンドにもIssueにも含んでいません。
Claude Codeはポリシーチェックを行うまでタグについて、わからないためポリシーチェックに失敗します。
しばらく待つとterraform plan
を行い先程のポリシーに引っかかりました。(FSBPのEC2 Public IPのポリシーも引っかかっていました)
Claude Codeはエラーメッセージを見て原因を確認し、修正対応まで行いました。
修正後再度terraform plan
を行って正常性を確認後、Pull Requestを作成しました。
このPull Requestをマージすると、HCP Terraform経由で自動的にterraform apply
が行われ変更が適用されます。
おわりに
社内の生成AIを活用しているエンジニアからFBを受けれて、とても有意義でした。
今回はClaude Codeのカスタムスラッシュコマンドで実装しましたが、Claude Code Actionsも試してみようと思います。
持ち時間10分で、デモも盛り込んだので説明不足な部分多かったと思います。
今年の11月13日に開催されるHashiTalksに同様の内容でCfPを出しました。
CfPが通ったら30分枠で今回の改良版をお話できると思うので、よかったら聞きに来てください。