Cloud Run にサービスをデプロイする前に、Cloud Run エミュレータを使用してサービスをローカルで開発できます。
開発用のサービスの構成
.vscode/launch.json
ファイルが定義されていない場合、Cloud Run エミュレータの実行 / デバッグダイアログで起動と起動の設定を指定して .vscode/launch.json
の設定を保存できます。.vscode/launch.json
ファイルが構成されている場合は、ファイルを直接編集できます。
サービスをローカルで実行するには、構成を指定します。
- コマンド パレットを開き(
Ctrl
/Cmd
+Shift
+P
を押します)、Cloud Run エミュレータで実行コマンドを実行します。 Cloud Run エミュレータの実行 / デバッグ ダイアログで、構成の仕様を設定します。
- Cloud Run エミュレータで使用できるのは、ローカルにインストールされたビルドツールだけです
- ビルダーとして [Docker] または [Buildpacks] を選択し、ソースを指定します
- (省略可)実行中のコンテナに渡す環境変数を指定するには、[ビルドの詳細設定] を展開し、クリックして Key-Value ペアを指定します。
名前 説明 例 PORT HTTP サーバーがリッスンするポート。 8080 K_SERVICE 実行されている Cloud Run サービスの名前。 hello-world K_REVISION 実行されている Cloud Run リビジョンの名前。 hello-world.1 K_CONFIGURATION リビジョンを作成した Cloud Run 構成の名前。 hello-world - (省略可)Cloud SQL 接続を指定するには、[高度なサービス設定] を展開し、[接続] をクリックして、1 行につき 1 つの Cloud SQL 接続を指定します。
- (省略可)[ローカル ネットワーク上の他のデバイスからサービスにアクセスする] オプションにチェックを入れます。
- (省略可)サービスを変更する際に、自動ではなく、手動で再ビルドして実行する場合は、[変更を自動的に再構築して再実行する] というチェックボックスをオフにします。
ローカルでのサービスの実行する
- 必要な設定を入力後、[実行] をクリックしてサービスを実行します。
出力ウィンドウでデプロイのステータスをモニタリングします。
デプロイ完了後は、出力ウィンドウに表示された URL を開いて、実行中のサービスを表示できます。
詳細ログを表示するには、出力ウィンドウ内で Cloud Run の詳細ビューに切り替えます。
セッションが完了すると、次のコンテキスト メニュー コマンドを使用できます。
- デプロイログを開く: Cloud Code ログ エクスプローラで特定のデプロイのアプリケーション ログを開きます。
- Open Service URL: 特定サービスのアプリケーション サービス URL をウェブブラウザで開きます。
起動構成でウォッチモードをオフにし、アプリケーションを変更して再ビルドと再デプロイを行う場合は、[Development sessions] ペインで、実行アクションを一時停止し、
[Rebuild and redeploy the application] をクリックします。
デプロイメントを停止するには、現在のデプロイメントのアクションバーの [Stop] ボタンをクリックします。
シークレットの保管
API キー、パスワード、証明書などの潜在的なセンシティブ データがコードに含まれている場合は、それらを Secret として保存することでセキュリティを確保できます。Cloud Code Secret Manager を統合することで、これらの Secret を安全に保存し、プログラムで取得できます。Cloud Code で Secret を作成および管理する方法の詳細については、Secret マネージャー ガイドをご覧ください。
既存の launch.json 構成のカスタマイズ
実行アクションを選択すると、Cloud Code プラグインは launch.json
構成ファイルを自動的に更新します。サービスの実行方法をさらにカスタマイズするには、.vscode/launch.json
ファイルで次のフィールドを指定します。
watch: ワークスペースの変更を監視し、サービスを再実行します。デフォルトは True です。
次のサンプルは、
true
に設定された watch を示しています。"watch": true,
build: イメージのビルドに使用するビルダー(Docker、jibMaven、jibGradle、buildpacks)を指定します。
次のサンプルは、Docker ビルダーを示しています。
"build": { "docker": { "path": "Dockerfile" } },
次のサンプルは、Buildpack ビルダーを示しています。
"build": { "buildpacks": { "path": "src/requirements.txt", "builder": "gcr.io/buildpacks/builder:v1" } },
イメージ: 使用するイメージの名前を指定します。
次のサンプルは、イメージ名を指定する方法を示しています。
"image": "hello-world",
サービス: 使用する Cloud Run サービスを指定します。
次のサンプルは、サービス名、ポート、リソースの上限を指定する方法を示しています。
"service": { "name": "hello-world", "containerPort": 8080, "resources": { "limits": { "memory": "256Mi" } } },
debug: リモートパスのマッピングなどのデバッグ設定を指定して、ローカルパスをリモート コンテナ上のパスにマッピングします。
次のサンプルは、ソースファイルのロケーションを示すデバッグ セクションを示しています。
"debug": { "sourceFileMap": { "${workspaceFolder}": "/app" } }