Cloud Run サンドボックスは、ワーカープール内でエージェント ワークフローを実行し、信頼できないペイロードを実行し、イベントを分離して処理するための、高速で安全な分離環境を提供します。サンドボックスはレイテンシが非常に最適化されており、コンテナと同じインスタンス内で実行され、割り当てられた CPU とメモリを共有します。
このページでは、コンテナでサンドボックスを構成する方法について説明します。 CLI を使用してサンドボックスとやり取りするコードの作成の詳細については、 Cloud Run でのコード実行をご覧ください。
始める前に
- アカウントに Google Cloud ログインします。 を初めて使用する場合は、 Google Cloud、 アカウントを作成して、 実際のシナリオでプロダクトがどのように機能するかを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- gcloud CLI を インストールして初期化します。
- Cloud Run ワーカープールをデプロイします。
必要なロール
Cloud Run のワーカープールの構成とデプロイに必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
- Cloud Run のワーカープールに対する Cloud Run デベロッパー (
roles/run.developer) - サービス ID に対するサービス アカウント ユーザー (
roles/iam.serviceAccountUser) ロール
Cloud Run に関連付けられている IAM ロールと権限のリストについては、Cloud Run IAM ロールと Cloud Run IAM 権限をご覧ください。Cloud Run ワーカープールがGoogle Cloud API(Cloud クライアント ライブラリなど)と連携している場合は、サービス ID の構成ガイドをご覧ください。ロールの付与の詳細については、 デプロイ権限 とアクセスの管理をご覧ください。
サンドボックスを有効にする
構成を変更すると、新しいリビジョンが作成されます。明示的に更新しない限り、以降のリビジョンでも、この構成が自動的に設定されます。
Cloud Run ワーカープールでサンドボックスを有効にするには、Google Cloud CLI または YAML 構成を使用します。
gcloud
ワーカープールをデプロイまたは更新するには、--sandbox-launcher フラグを指定します。
新しいワーカープールをデプロイするには、次のコマンドを実行します。
gcloud beta run worker-pools deploy WORKER_POOL --image IMAGE_URL --sandbox-launcher
次のように置き換えます。
- WORKER_POOL: Cloud Run ワーカープールの名前
IMAGE_URL: ワーカープールを含むコンテナ イメージへの参照(us-docker.pkg.dev/cloudrun/container/worker-pool:latestなど)
既存のワーカープールを更新するには、次のコマンドを実行します。
gcloud beta run worker-pools update WORKER_POOL --sandbox-launcher
YAML
新しいワーカープールを作成する場合は、この手順をスキップします。 既存のワーカープールを更新する場合は、その YAML 構成をダウンロードします。
gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
コンテナ構成内で
sandboxLauncher属性をtrueに設定して、YAML ファイルを更新します。apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL annotations: run.googleapis.com/launch-stage: BETA spec: template: spec: containers: - name: CONTAINER image: IMAGE_URL sandboxLauncher: true次のように置き換えます。
- WORKER_POOL: Cloud Run ワーカープールの名前
- CONTAINER: コンテナの名前
IMAGE_URL: ワーカープールを含むコンテナ イメージへの参照(us-docker.pkg.dev/cloudrun/container/worker-pool:latestなど)
次のコマンドを使用して、ワーカープールを作成または更新します。
gcloud run worker-pools replace worker-pool.yaml
gcloud run worker-pools replaceコマンドは、worker-pool.yamlファイルが存在する場合はデフォルトで使用します。
サンドボックスは、ホスト コンテナに割り当てられた CPU とメモリを共有します。メイン コンテナの CPU とメモリの上限が、アプリケーションと同時に実行するアクティブなサンドボックスの両方に対応できることを確認してください。
サンドボックスを無効にする
ワーカープールでサンドボックスを起動する機能を無効にするには、Google Cloud CLI または YAML 構成を使用します。
gcloud
次のコマンドを実行して、--no-sandbox-launcher フラグを使用してワーカープールを更新します。
gcloud beta run worker-pools update WORKER_POOL --no-sandbox-launcher
WORKER_POOL は、ワーカープールの名前に置き換えます。
YAML
新しいワーカープールを作成する場合は、この手順をスキップします。 既存のワーカープールを更新する場合は、その YAML 構成をダウンロードします。
gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
コンテナ構成内の
sandboxLauncher属性を削除するように YAML ファイルを更新します。apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL spec: template: spec: containers: - name: CONTAINER image: IMAGE_URL次のように置き換えます。
- WORKER_POOL: Cloud Run ワーカープールの名前
- CONTAINER: コンテナの名前
IMAGE_URL: ワーカープールを含むコンテナ イメージへの参照(us-docker.pkg.dev/cloudrun/container/worker-pool:latestなど)
次のコマンドを使用して、ワーカープールを作成または更新します。
gcloud run worker-pools replace worker-pool.yaml
gcloud run worker-pools replaceコマンドは、worker-pool.yamlファイルが存在する場合はデフォルトで使用します。
サンドボックスの設定を表示する
Cloud Run ワーカープールの現在のサンドボックス設定を表示するには:
コンソール
コンソール Google Cloud で、Cloud Run の [Worker pools] ページに移動します。
ワーカープールをクリックして、[ワーカープールの詳細] ページを開きます。
[変更内容] タブをクリックします。
[コンテナ] タブで、[サンドボックス ランチャー] 設定を見つけて、サンドボックス化されたコンテナが有効か無効かを確認します。
gcloud
次のコマンドを使用します。
gcloud run worker-pools describe WORKER_POOL
WORKER_POOL は、ワーカープールの名前に置き換えます。
サンドボックス化されたコンテナが有効になっていることを確認するには、返された構成で
sandboxLauncher: true属性を見つけます。
ワーカープールからサンドボックスで信頼できないコードを実行するには、Cloud Run でのコード実行をご覧ください。