【正解】C
【0からの解説】
①前提知識
・Workflows は、Google Cloud のサービスや HTTP API の呼び出しを YAML / JSON で定義した順序で実行するサーバーレスのオーケストレーション サービスです。
・Workflows の「コネクタ」は、Google Cloud の各 API を呼び出すための組み込み機能です。認証、リトライ、長時間実行オペレーションの完了待ち(ポーリング)を自動的に処理してくれるため、API の URL や認証ヘッダーを自分で組み立てる必要がありません。
・Cloud Run ジョブは、HTTP リクエストを受け付ける「サービス」とは異なり、処理を最後まで実行して終了するバッチ型のワークロードです。ジョブは HTTP エンドポイントを持たず、Cloud Run Admin API の jobs.run(実行)メソッドなどで起動します。
②要件と制約の整理
・ワークフローの中から Cloud Run ジョブを実行したい。
・Google 推奨のベスト プラクティスに従う。
③正解がどう満たすか
公式ドキュメントでは「ワークフローから Cloud Run ジョブを実行するには、Cloud Run Admin API コネクタを使用する」と明記されています。ワークフローのステップで Cloud Run Admin API コネクタのジョブ実行メソッド(例: googleapis.run.v1.namespaces.jobs.run など)を call するだけで、認証が自動で行われ、ジョブの実行完了まで待機して結果を後続ステップで使うこともできます。複雑なデータ分析の各段階を順序立てて制御するのに適した方法です。
【誤りの選択肢】
A:Cloud Run ジョブは Pub/Sub トピックを直接サブスクライブしてメッセージを受け取る仕組みを持ちません(push サブスクリプションの宛先にできるのは HTTP エンドポイントを持つサービスです)。また、ワークフローの中でジョブの完了を待って次の処理へ進むといった制御もできません。
B:Eventarc はイベント(Cloud Storage へのファイル作成など)をきっかけにターゲットを呼び出す仕組みで、「トリガーをワークフローのステップに含める」という使い方はできません。Eventarc はむしろワークフロー自体を起動する側として使うもので、ワークフローの中からジョブを実行する方法ではありません。
D:Cloud Run ジョブには、リクエストを受け付ける「エントリ ポイント」となる HTTP URL がありません。Cloud Run Admin API の REST エンドポイントを http.post で直接呼ぶことは技術的には可能ですが、URL の組み立てや認証設定、完了待ちのポーリングを自前で書く必要があり、それらを自動処理するコネクタを使う推奨方法に劣ります。
【参考】
Workflows を使用してジョブを呼び出す | Cloud Runコネクタを理解する | Workflows