ソフトウェア開発の世界では、コードのレビューと承認は、開発中のソフトウェアの品質、セキュリティ、機能を保証するための重要なプロセスです。ただし、これらの重要なプロセスを監督する任務を負ったマネージャーは、次のような多くの課題に直面することがよくあります。
- 技術的専門知識の欠如 – マネージャーは、使用されているプログラミング言語について技術的に深く理解していないか、ソフトウェア エンジニアリングに長期間携わっていない可能性があります。その結果、知識のギャップが生じ、提案されたコード変更の影響と健全性を正確に評価することが困難になる可能性があります。
- 時間の制約 – コードのレビューと承認は、特に大規模またはより複雑なプロジェクトの場合、時間のかかるプロセスになる可能性があります。マネージャーは、レビューの徹底性とプロジェクトのスケジュールを遵守するというプレッシャーの間でバランスを取る必要があります。
- 変更リクエストの量 – 大量の変更リクエストに対処することは、特に複数のチームやプロジェクトを監督しているマネージャーにとって共通の課題です。時間の制約という課題と同様に、マネージャーはプロジェクトの進行を妨げないように、これらの要求を効率的に処理できる必要があります。
- 手作業による作業 – コードレビューには管理者による手動の作業が必要であり、自動化されていないためプロセスの拡張が困難になる可能性があります。
- ドキュメンテーション – コードのレビューと承認のプロセスを適切に文書化することは、透明性と説明責任のために重要です。
の上昇と 生成人工知能 (AI) により、管理者はこの革新的なテクノロジーを活用し、AWS の導入ツールおよびサービスのスイートと統合して、以前は不可能だった方法でレビューと承認のプロセスを合理化できるようになりました。この投稿では、自動化された変更分析と要約を承認ワークフロー機能とともに組み込んだ、統合されたエンドツーエンドの展開ワークフローを提供するソリューションを検討します。を使用しております アマゾンの岩盤は、主要な AI スタートアップ企業や Amazon の基盤モデル (FM) を API 経由で利用できるようにするフルマネージド サービスです。そのため、幅広い FM から選択して、ユースケースに最適なモデルを見つけることができます。 Amazon Bedrock サーバーレスエクスペリエンスを使用すると、インフラストラクチャを管理することなく、すぐに開始し、独自のデータで FM をプライベートにカスタマイズし、AWS ツールを使用してアプリケーションに統合してデプロイできます。
ソリューションの概要
次の図は、ソリューションのアーキテクチャを示しています。
ワークフローは次の手順で構成されます。
- 開発者は、新しいコードの変更をコード リポジトリにプッシュします (例: AWS コードコミット)、これにより自動的に開始がトリガーされます。 AWS コードパイプライン 配備
- アプリケーション コードはコード構築プロセスを経て、脆弱性スキャンを実行し、好みのツールを使用して単体テストを実施します。
- AWS コードビルド リポジトリを取得し、 git show コマンドを実行して、現在のコミット バージョンと以前のコミット バージョンのコードの差異を抽出します。これにより、このリリースで行われたコードの変更を示す行ごとの出力が生成されます。
- CodeBuild は出力を Amazon DynamoDB 追加の参照情報を含む表:
- CodePipeline 実行 ID
- AWSリージョン
- コードパイプライン名
- CodeBuild のビルド番号
- 日時
- Status:
- AmazonDynamoDBストリーム データの変更をキャプチャします テーブルに作られました。
- An AWSラムダ この関数は DynamoDB ストリームによってトリガーされ、キャプチャされたレコードを処理します。
- この関数は、Amazon Bedrock 経由で Amazon Bedrock 上の Anthropic Claude v2 モデルを呼び出します。 InvokeModel API 電話。コードの相違点はプロンプトとともに、分析用のモデルへの入力として提供され、コード変更の概要が出力として返されます。
- モデルからの出力は同じ DynamoDB テーブルに保存されます。
- マネージャーには次の方法で通知されます。 AmazonシンプルEメールサービス (Amazon SES) コード変更の概要と、デプロイには承認が必要であることを説明します。
- マネージャーは電子メールをレビューし、CodePipeline コンソールを介してレビュー コメントとともに決定 (承認または拒否) を提供します。
- 承認決定とレビューコメントは次のように取得されます。 アマゾンイベントブリッジこれにより、Lambda 関数がトリガーされ、DynamoDB に保存されます。
- 承認されると、パイプラインは好みのツールを使用してアプリケーション コードをデプロイします。拒否された場合、ワークフローは終了し、展開はそれ以上続行されません。
次のセクションでは、ソリューションをデプロイし、エンドツーエンドのワークフローを検証します。
前提条件
このソリューションの手順に従うには、次の前提条件が必要です。
ソリューションを展開する
ソリューションを展開するには、次の手順を実行します。
- 選択する 発射スタック CloudFormation スタックを起動するには
us-east-1
: - 電子メールアドレス、アクセスできる電子メール アドレスを入力します。コード変更の概要は、この電子メール アドレスに送信されます。
- モデルIDは、デフォルトの anthropic.claude-v2 (Anthropic Claude v2 モデル) のままにしておきます。
テンプレートのデプロイには約 4 分かかります。
- Amazon SES から E メールアドレスを確認するための E メールを受信したら、提供されるリンクを選択して E メールアドレスを認証します。
- CodeCommit へのサンプル リポジトリの最初のコミットに関する「変更の概要」というタイトルの電子メールが届きます。
- AWS CloudFormationコンソールで、に移動します 出力 デプロイされたスタックのタブ。
- RepoCloneURL の値をコピーします。これはサンプル コード リポジトリにアクセスするために必要です。
ソリューションをテストする
開発者の役割を引き受けてコードの変更をプッシュすることで、ワークフローをエンドツーエンドでテストできます。 CodeCommit にはサンプル コードのセットが用意されています。に CodeCommit リポジトリにアクセスする、IDE で次のコマンドを入力します。
次のディレクトリ構造が見つかります。 AWSクラウド開発キット 整数の文字列に対してバブルソートを実行する Lambda 関数を作成する (AWS CDK) アプリケーション。 Lambda 関数には、公開されている URL からアクセスできます。
アプリケーション コードに 3 つの変更を加えます。
- クイック ソート アルゴリズムとバブル ソート アルゴリズムの両方をサポートするように関数を強化するには、使用するアルゴリズムを選択できるようにパラメーターを取り込み、使用されるアルゴリズムとソートされた配列の両方を出力で返し、次の内容全体を置き換えます。
lambda/index.py
次のコードで:
- 関数のタイムアウト設定を 10 分から 5 秒に減らすには (関数の実行時間が数秒を超えることは想定されていないため)、次の行 47 を更新します。
my_sample_project/my_sample_project_stack.py
次のように:
- セキュリティを強化するために IAM を使用した関数の呼び出しを制限するには、次の行 56 を更新します。
my_sample_project/my_sample_project_stack.py
次のように:
- 次のコマンドを入力して、コードの変更をプッシュします。
これにより、ソリューションの概要で説明したステップ 1 ~ 9 の CodePipeline デプロイ ワークフローが開始されます。 Amazon Bedrock モデルを呼び出すときに、次のプロンプトが表示されました。
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- PlatoData.Network 垂直生成 Ai。 自分自身に力を与えましょう。 こちらからアクセスしてください。
- プラトアイストリーム。 Web3 インテリジェンス。 知識増幅。 こちらからアクセスしてください。
- プラトンESG。 カーボン、 クリーンテック、 エネルギー、 環境、 太陽、 廃棄物管理。 こちらからアクセスしてください。
- プラトンヘルス。 バイオテクノロジーと臨床試験のインテリジェンス。 こちらからアクセスしてください。
- 情報源: https://aws.amazon.com/blogs/machine-learning/enhance-code-review-and-approval-efficiency-with-generative-ai-using-amazon-bedrock/