CodeCommitリポジトリへのプッシュ時に自動的にユニットテストを実行し、テスト失敗時はマージをブロックするCI/CDの実装方法として正しいものはどれですか?
CodeCommitのプッシュ/PRイベントをトリガーにCodePipelineを起動し、CodeBuildでユニットテストを実行します。テストが失敗するとCodeBuildはexitコード1を返し、パイプラインが失敗します。CodeCommitのプルリクエスト承認ルールと組み合わせることで、テスト通過前のマージをブロックできます。 選択肢BのLambda関数で手動テストをトリガーする方式は自動テストの要件を満たさず、CodeCommitのマージブロック機能とも連携できません。 選択肢CのCloudWatchアラームはメトリクス・ログを監視するサービスであり、CodeCommitへのコードプッシュを直接検知する機能を持ちません。 選択肢DのEventBridge+SNSで開発者へ通知して手動テストを行う方式は人手の介在が必要であり、自動テスト実行と自動マージブロックの要件を満たしません。