企業はCodePipelineで本番デプロイ前に承認フローを設けています。承認リクエスト発行時にSlackと社内メールの両方へ通知を送信し、承認者が72時間以内に対応しなかった場合は自動的に却下してパイプラインを停止させたいと考えています。最小限の追加コンポーネントでこの要件を満たす方法はどれですか?
CodePipeline V2ではActionDeclarationにTimeoutInMinutesプロパティが導入されており、Manual Approvalアクションにも適用できます。TimeoutInMinutes: 4320(72時間)を設定すると、指定時間内に承認操作がない場合にアクションがタイムアウトしパイプラインが停止します。通知はSNSトピックにAWS ChatbotとEメールサブスクリプションを追加するだけでSlackと社内メールへの同時通知を実現でき、追加コンポーネントを最小限に抑えられます。 選択肢BのCodePipelineのManual Approvalアクションを追加してNotificationArnsでSNSトピックを指定し、EventBridgeルールとLambdaを使い72時間経過後にPutApprovalResult APIで自動却下する方法は要件を満たすが、追加コンポーネントが増えるため最小構成の要件を満たしません。 選択肢CのAWS Step Functionsで承認ワークフローを実装する方法は要件達成可能だが、State Machineの追加により構成が大幅に複雑化します。 選択肢DのCodePipelineのManual Approvalアクションを廃止し、Slack Bot(Lambda + API Gateway)で承認UIを構築する方法は要件達成可能だが、Lambda・API Gatewayなど追加コンポーネントが大幅に増加します。