【正解】A
【0からの解説】
①前提知識
・Firestore はサーバーレスなドキュメント データベースで、e コマースの注文データなどを保存するのによく使われます。
・Cloud Functions(現 Cloud Run functions)は、イベントをトリガーに小さなコードをサーバーレスで実行するサービスです。Firestore トリガー(Eventarc 経由の google.cloud.firestore.document.v1.created イベントなど)を使うと、ドキュメントが作成されたタイミングで関数を自動起動できます。
・関数は作成されたドキュメント(注文内容・顧客名・メールアドレスなど)をイベント データとして受け取れるため、それを使って顧客ごとにカスタマイズしたメールを、SendGrid などのメール送信サービスの API 経由で送信できます。
②要件の整理
・注文時に顧客へメール通知を送る
・メールは顧客ごとにカスタマイズ(注文内容などを反映)
・デプロイの手間を最小化
③正解の理由
注文が Firestore にドキュメントとして作成されたことをトリガーに Cloud Function を起動すれば、サーバーの構築・運用なしに、関数のコードをデプロイするだけで注文ごとのメール送信を実現できます。注文データをそのまま受け取れるのでメールのカスタマイズも容易です。デプロイの手間が最も少なく、イベント駆動で確実に動作する A が最適です(なお原文の選択肢 A は末尾が読点で終わっていますが、意味は完結しています)。
【誤りの選択肢】
B:Compute Engine の VM にメール送信アプリをホストすると、VM の作成・OS やミドルウェアの管理・スケーリング・パッチ適用などが必要になり、「デプロイの手間を最小限に」という要件に反します。さらに注文処理側から HTTP で呼び出す連携も自前で実装する必要があります。
C:Cloud Monitoring の通知チャネルとアラート ポリシーは、システムの異常を運用担当者に知らせるための仕組みです。宛先は事前に登録した固定の通知チャネルで、顧客ごとに宛先や本文を変えたカスタマイズ メールを送る用途には使えません。
D:Pub/Sub はサービス間でメッセージを非同期に受け渡すメッセージング サービスであり、それ自体にメールを送信する機能はありません。メッセージを受け取ってメールを送る処理を別途実装する必要があり、選択肢の記述どおりでは要件を満たしません。
【参考】
Firestore ドキュメントで関数をトリガーする | Cloud RunCloud Run functions の概要