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 開發人員 (
roles/run.developer) 在 Cloud Run 工作上 - 服務身分上的服務帳戶使用者 (
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 jobs create JOB --image IMAGE_URL --sandbox-launcher
更改下列內容:
- JOB:Cloud Run 工作名稱。
- IMAGE_URL:容器映像檔的參照,例如
us-docker.pkg.dev/cloudrun/container/job:latest
如要更新現有工作,請執行下列指令:
gcloud beta run jobs update JOB --sandbox-launcher
YAML
如要建立新工作,請略過這個步驟。 如要更新現有工作,請下載其 YAML 設定:
gcloud run jobs describe JOB_NAME --format export > job.yaml
更新 YAML 檔案,在容器設定中加入設為
true的sandboxLauncher屬性:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB annotations: run.googleapis.com/launch-stage: BETA spec: template: spec: template: spec: containers: - name: CONTAINER image: IMAGE_URL sandboxLauncher: true更改下列內容:
- JOB:Cloud Run 工作名稱。
- CONTAINER:容器名稱。
- IMAGE_URL:容器映像檔的參照,例如
us-docker.pkg.dev/cloudrun/container/job:latest
使用下列指令建立或更新作業:
gcloud run jobs replace job.yaml
如果存在
job.yaml檔案,gcloud run jobs replace指令預設會使用該檔案。
沙箱會共用分配給主機容器的 CPU 和記憶體。請確認主要容器的 CPU 和記憶體上限,可同時容納應用程式和您執行的任何有效沙箱。
停用沙箱
如要禁止在工作中啟動沙箱,請使用 Google Cloud CLI 或 YAML 設定:
gcloud
執行下列指令,使用 --no-sandbox-launcher 旗標更新作業:
gcloud beta run jobs update JOB --no-sandbox-launcher
將 JOB 替換為工作名稱。
YAML
如要建立新工作,請略過這個步驟。 如要更新現有工作,請下載其 YAML 設定:
gcloud run jobs describe JOB_NAME --format export > job.yaml
更新 YAML 檔案,移除容器設定中的
sandboxLauncher屬性:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB spec: template: spec: template: spec: containers: - name: CONTAINER image: IMAGE_URL更改下列內容:
- JOB:Cloud Run 工作名稱。
- CONTAINER:容器名稱。
- IMAGE_URL:容器映像檔的參照,例如
us-docker.pkg.dev/cloudrun/container/job:latest
使用下列指令建立或更新作業:
gcloud run jobs replace job.yaml
如果存在
job.yaml檔案,gcloud run jobs replace指令預設會使用該檔案。
查看沙箱設定
如要查看 Cloud Run 作業目前的沙箱設定:
控制台
前往 Google Cloud 控制台的 Cloud Run「Jobs」頁面:
按一下工作,開啟「Job details」(工作詳細資料) 頁面。
在「記錄」分頁中,從清單點選已執行工作的 ID。
在「Containers」(容器) 分頁中,找到「Sandbox launcher」(沙箱啟動器) 設定,查看沙箱容器是否已啟用或停用。
gcloud
使用下列指令:
gcloud run jobs executions describe EXECUTION_NAME --format yaml
將 EXECUTION_NAME 替換為工作執行作業的名稱。
如要確認已啟用沙箱化容器,請在傳回的設定中找出
sandboxLauncher: true屬性。
如要在工作中的沙箱執行不信任的程式碼,請參閱「在 Cloud Run 中執行程式碼」。