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) - 服務身分上的服務帳戶使用者 (
roles/iam.serviceAccountUser)
如需與 Cloud Run 相關聯的 IAM 角色和權限清單,請參閱「Cloud Run IAM 角色」和「Cloud Run IAM 權限」。如果 Cloud Run 執行個體與Google Cloud API (例如 Cloud 用戶端程式庫) 介接,請參閱服務身分設定指南。 如要進一步瞭解如何授予角色,請參閱「部署權限」和「管理存取權」。
啟用沙箱
如要在 Cloud Run 執行個體中啟用沙箱,請使用 Google Cloud CLI 或 YAML 設定:
gcloud
如要建立或更新執行個體,請指定 --sandbox-launcher 旗標:
如要建立新執行個體,請執行下列指令:
gcloud beta run instances create INSTANCE --image IMAGE_URL --sandbox-launcher
更改下列內容:
- INSTANCE:Cloud Run 執行個體的名稱。
IMAGE_URL:容器映像檔的參照,例如us-docker.pkg.dev/cloudrun/container/hello:latest。
如要更新現有執行個體,請執行下列指令:
gcloud beta run instances update INSTANCE --sandbox-launcher
YAML
如果您要建立新執行個體,請略過這個步驟。 如要更新現有執行個體,請下載其 YAML 設定:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
更新 YAML 檔案,在容器設定中加入設為
true的sandboxLauncher屬性:apiVersion: run.googleapis.com/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/launch-stage: BETA spec: containers: - name: CONTAINER image: IMAGE_URL sandboxLauncher: true更改下列內容:
- INSTANCE:Cloud Run 執行個體的名稱。
- CONTAINER:容器名稱。
IMAGE_URL:容器映像檔的參照,例如us-docker.pkg.dev/cloudrun/container/hello:latest。
使用下列指令建立或更新執行個體:
gcloud beta run instances replace instance.yaml
沙箱會共用分配給主機容器的 CPU 和記憶體。請確認主要容器的 CPU 和記憶體限制,足以同時容納應用程式和您執行的任何有效沙箱。
停用沙箱
如要停用在執行個體中啟動沙箱的功能,請使用 Google Cloud CLI 或 YAML 設定:
gcloud
執行下列指令,使用 --no-sandbox-launcher 旗標更新執行個體:
gcloud beta run instances update INSTANCE --no-sandbox-launcher
將 INSTANCE 換成您的執行個體名稱。
YAML
如果您要建立新執行個體,請略過這個步驟。 如要更新現有執行個體,請下載其 YAML 設定:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
更新 YAML 檔案,移除容器設定中的
sandboxLauncher屬性:apiVersion: run.googleapis.com/v1 kind: Instance metadata: name: INSTANCE spec: containers: - name: CONTAINER image: IMAGE_URL更改下列內容:
- INSTANCE:Cloud Run 執行個體的名稱。
- CONTAINER:容器名稱。
IMAGE_URL:容器映像檔的參照,例如us-docker.pkg.dev/cloudrun/container/hello:latest。
使用下列指令建立或更新執行個體:
gcloud beta run instances replace instance.yaml
查看沙箱設定
如要查看 Cloud Run 執行個體目前的沙箱設定:
gcloud
使用下列指令:
gcloud beta run instances describe INSTANCE
將 INSTANCE 換成您的執行個體名稱。
在傳回的設定中找出
sandboxLauncher: true屬性。
如要在執行個體的沙箱中執行不信任的程式碼,請參閱「在 Cloud Run 中執行程式碼」。