ある企業はモノリポ(monorepo:複数サービスのコードを1つのリポジトリで管理する構成)を採用しており、AWS CodeCommitリポジトリに services/frontend/・services/backend/・services/shared/ のディレクトリが含まれています。フロントエンドサービス専用のAWS CodePipeline V2パイプラインを、services/frontend/ または services/shared/ 配下のファイルが変更された場合のみ自動起動させたいと考えています。services/backend/ のみの変更ではパイプラインを起動させないようにする最も効率的な方法はどれですか?
CodePipeline V2タイプのトリガー設定でファイルパスフィルターを使用し、services/frontend/** と services/shared/** を包含パターン(includeFilePaths)として指定する。 AWS CodePipeline V2タイプはトリガー設定でglobパターンによるファイルパスフィルタリング(includeFilePaths / excludeFilePaths)をネイティブにサポートしています。services/frontend/** と services/shared/** を包含パターンとして設定するだけで、それ以外のパス変更ではパイプラインが自動起動しなくなります。追加のLambdaやSNS/SQSは不要です。 選択肢A(EventBridge ルールとLambda)はLambda経由でも同じ結果は得られますが、Lambda関数の実装・デプロイ・管理コストが発生し、V2のネイティブ機能より大幅に複雑です。 選択肢C(CodeCommit トリガー、SNS、SQS、Lambda)はSNS・SQS・Lambdaを組み合わせる構成は過剰であり、V2のネイティブ機能が存在する現在は最適解ではありません。 選択肢D(フロントエンド専用のCodeCommit ブランチ)は専用ブランチを作るとモノリポの利点(一元的な履歴管理・横断的変更)が失われ、shared/の変更をフロントエンドブランチへ同期させる仕組みが別途必要になるため現実的ではありません。