【正解】A
【0からの解説】
要件は「サーバーレスで」「User-Agent によって識別した古いデバイス向けのレスポンスから、特定の HTTP ヘッダーを削除する」ことです。
CloudFront には軽量・低レイテンシーで HTTP リクエスト/レスポンスを操作できる CloudFront Functions があり、ビューワーリクエスト/ビューワーレスポンスのイベントでヘッダーの追加・削除・書き換えができます。User-Agent を見て、古いデバイスへのレスポンスから問題のあるヘッダーを削る、というまさにこの用途に最適です。CloudFront → ALB → Lambda の構成でサーバーレスにアプリを動かしつつ、エッジでヘッダー整形を行えます(選択肢 A)。
【誤りの選択肢】
B:API Gateway の「ゲートウェイレスポンス(gateway responses)」は、認証失敗やスロットリングなど API Gateway 自身が生成するエラーレスポンスをカスタマイズする機能で、User-Agent に応じて通常レスポンスから任意のヘッダーを動的に削除する用途には設計されていません。
C:HTTP API は機能が絞られた軽量版で、REST API のようなレスポンスマッピングテンプレート(VTL による変換)をサポートしていません。「レスポンスマッピングテンプレートを作成して関連付ける」という構成自体が成立しません。
D:Lambda@Edge でヘッダー操作自体は可能ですが、本選択肢は「viewer リクエスト」イベントで処理するとしています。削除したいのは「レスポンス」のヘッダーなので、本来は viewer レスポンス(または origin レスポンス)で処理すべきで、イベントの選択が誤りです。また単純なヘッダー削除なら、より軽量・低コストな CloudFront Functions(A)が適切です。
【参考】
CloudFront FunctionsCloudFront でのレスポンスヘッダーの操作