Q77 — AWS DOP-C02 第3章

第 77/100 問 | ← 第3章

開発チームは、アプリケーションのバージョン管理に AWS CodeCommit を使用しています。また、CI/CD インフラストラクチャとして AWS CodePipeline、AWS CodeBuild、AWS CodeDeploy を使用しています。CodeCommit 内で、開発チームは最近、長期間実行されるテストを含むコードベースへのプルリクエストをマージしました。この結果、不要なリソース消費と遅延が発生しました。 DevOps エンジニアは、CodeCommit 内でプルリクエストを自動テストし、レビュアーがコードレビューの一部として自動テストの結果を容易に確認できるようにする必要があります。

正解: C. pullRequestCreated および pullRequestSourceBranchUpdated イベントに応答する Amazon EventBridge ルールを作成します。アプリケーションテストを実行する CodeBuild アクションを使用して CodePipeline パイプラインを呼び出す AWS Lambda 関数を作成します。Lambda 関数をプログラムして、CodeBuild バッジをプルリクエストのコメントとして投稿し、開発者がコードレビューでそのバッジを確認できるようにします。

解説

Amazon EventBridge ルールは、プルリクエストの作成およびソースブランチの更新イベントに応答する必要があります。これにより、初期のコミットおよびその後の変更に対応できます。AWS ドキュメントによると、CodeCommit の pullRequestCreated イベントは新しいプルリクエスト作成時に発生し、pullRequestSourceBranchUpdated イベントはソースブランチに新しいコミットがあるときに発生します。選択肢 A、B、D は単一のイベントのみをリッスンするため、後続のコード変更後の再テストに対応できません。一方、選択肢 C は複数のイベントを正しくトリガーし、Lambda を介して CodeBuild を呼び出してテストを実行し、結果をバッジ形式でプルリクエストにフィードバックします。これにより、レビュー時に常に最新のテスト状態が表示され、問題文の「容易に見える」という要件を満たします。