【正解】D
【0からの解説】
①前提知識
・Cloud Run の「ソースからのデプロイ」:gcloud run deploy --source . を実行すると、ローカル ディレクトリのソースコードがアップロードされ、Cloud Build が(Dockerfile があればそれを、なければ Google Cloud のビルドパックを使って)コンテナ イメージを自動でビルドし、Artifact Registry に保存したうえで Cloud Run にデプロイします。Python などの対応言語なら Dockerfile を書く必要すらなく、1 コマンドでデプロイが完了します。
・Apigee は Google Cloud のフルマネージドな API 管理プラットフォームで、API プロキシがクライアントからのリクエストを受け、認証・レート制限などを適用してからバックエンド(ここでは Cloud Run)へ転送します。Apigee のランタイムはクラウド上で動作しています。
②要件と制約の整理
・すでにデプロイ済みの Apigee プロキシと、新しい Cloud Run サービスの連携を確認したい。
・「できるだけ迅速に」テストしたい。
③正解がどう満たすか
カレント ディレクトリで gcloud run deploy --source . を実行するだけで、コンテナのビルド・保存・デプロイがまとめて行われ、すぐに Cloud Run サービスの URL が得られます。Apigee プロキシのターゲットをその URL に向ければ、実際のクラウド環境で Apigee 経由の統合をそのままテストできます。手作業のステップが最も少なく、最速でテストに入れる方法です。
【誤りの選択肢】
A:gcloud run deploy --source はローカルのソース ディレクトリ(またはソースファイル)を指定して使うもので、事前にコードを zip にして Cloud Storage バケットへ置くという手順は不要です。余計な作業が増えるだけで、「できるだけ迅速に」に反します。
B:Apigee のランタイムはクラウド上で動いているため、開発者のマシン上で動くローカルのエミュレータには通常到達できません(公開されたエンドポイントではないため)。また、gcloud には Pub/Sub や Firestore などのエミュレータはありますが、Apigee と連携させる「Cloud Run エミュレータ」でクラウドの統合テストを行うことは想定されておらず、実際の Cloud Run 上での連携確認にもなりません。
C:ローカルでのイメージのビルド、Artifact Registry への push、デプロイと手動のステップが多く、ローカルに Docker 環境も必要です。最終的な結果は D と同じですが、ソースからのデプロイ 1 コマンドで済む D に比べて時間がかかります。
【参考】
ソースコードからサービスをデプロイする | Cloud Run