- 公開日
- 最終更新日
[CodeCatalyst]Amazon QにIssueを割り当ててコード生成
この記事を共有する

目次
はじめに
サービスGの森です。
普段ソースコード管理としてAmazon CodeCatalystを使用する事がありますが、
まだ使ってない機能もたくさんあります。
今回はAmazon CodeCatalystでAmazon Qに対してIssueを割り当てて、コードの生成をしてもらいたいと思います。
生成するコードは、VPCとサブネットを定義するシンプルなCloudFormationテンプレートとします。
やってみた
1. 生成AI機能の有効化
1. CodeCatalystのスペースに移動して、[Setting]タブをクリックします
2. ナビゲーションペインから[Generative AI]をクリックします
3. [Projects in this space can access generative AI features(このスペースのプロジェクトが生成AI機能にアクセスできる)]を有効化します
2. Amazon QにIssueを割り当て
1. CodeCatalystのナビゲーションペインからIssuesをクリックします
2. 以下のIssueを発行します
- タイトル: VPC・サブネット用のCloudFormationテンプレートの作成
- Description:
1. VPCを含むAWS CloudFormationテンプレートをYAML形式で作成してください。 2. 以下の仕様を持つVPC用のCloudFormationテンプレートを作成してください: * CIDR: 10.0.0.0/16 * 3つのパブリックサブネット
- Status: To Do
- Priority: Medium
- Tasks: 未設定
- Labels: 未設定
- Assignees: Amazon Q
- Choose a source repository for Amazon Q to work in.:
- Source repository: ※対象のリポジトリ
- Require Amazon Q to stop after each step and await review of its work: 有効
- Allow Amazon Q to modify workflow files: 無効
- Allow Amazon Q to suggest creating tasks: 無効
3. Issueの確認
1. 作成したIsuueは、ボード上でTodoからIn Progressに遷移しています
2. Issueをクリックすると以下のフローを作成しており、ユーザーの返答待ちになっています
1. 前提条件を評価する 2. リポジトリを読む 3. 背景を生成する 4. アプローチを生成する 5. コードを生成する 6. プルリクエストを作成する
3. 画面をスクロールすると、アプローチと作業を続行してよいかの承認を求められるので、Proceedをクリックして作業を続行させます
4. しばらくするとプルリクエストの作成まで完了しました
3. プルリクエストの承認とマージ
1. プルリクエストでは以下のコードが生成されています
AWSTemplateFormatVersion: '2010-09-09' Description: VPC with 3 public subnets Resources: VPC: Type: AWS::EC2::VPC Properties: CidrBlock: 10.0.0.0/16 EnableDnsHostnames: true EnableDnsSupport: true InstanceTenancy: default Tags: - Key: Name Value: MyVPC PublicSubnet1: Type: AWS::EC2::Subnet Properties: VpcId: !Ref VPC AvailabilityZone: us-east-1a CidrBlock: 10.0.1.0/24 MapPublicIpOnLaunch: true Tags: - Key: Name Value: Public Subnet 1 PublicSubnet2: Type: AWS::EC2::Subnet Properties: VpcId: !Ref VPC AvailabilityZone: us-east-1b CidrBlock: 10.0.2.0/24 MapPublicIpOnLaunch: true Tags: - Key: Name Value: Public Subnet 2 PublicSubnet3: Type: AWS::EC2::Subnet Properties: VpcId: !Ref VPC AvailabilityZone: us-east-1c CidrBlock: 10.0.3.0/24 MapPublicIpOnLaunch: true Tags: - Key: Name Value: Public Subnet 3 Outputs: VpcId: Description: VPC ID Value: !Ref VPC Export: Name: !Sub "${AWS::StackName}-VpcId" PublicSubnets: Description: Public Subnets Value: !Join [",", [!Ref PublicSubnet1, !Ref PublicSubnet2, !Ref PublicSubnet3]] Export: Name: !Sub "${AWS::StackName}-PublicSubnets"
2.ApproveとMergeを実行します ※ちなみにプルリクエストの説明文も生成されています
4. 生成されたテンプレートからスタックをデプロイ
1. デプロイできました!
おわりに
- Issueのアサインはデフォルトで月に5件までしか登録できません。Amazon Q Developerをサブスクリプションする事で30件に増やせました。1日1件までという事ですかね。
この記事は私が書きました
森 翔吾
記事一覧最近はコンテナ・サーバレスを学習しています。 よろしくお願いします。
