在 Cloud Run 中建構及建立 Shell 工作
事前準備
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Install the Google Cloud CLI.
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init -
Create or select 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.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
如要使用現有專案進行本指南中的操作,請確認您具有所需的權限。如果您建立新專案,則已具備必要權限。
-
Verify that billing is enabled for your Google Cloud project.
-
Install the Google Cloud CLI.
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init -
Create or select 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.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
如要使用現有專案進行本指南中的操作,請確認您具有所需的權限。如果您建立新專案,則已具備必要權限。
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run Admin API and Cloud Build APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable run.googleapis.com
cloudbuild.googleapis.com 啟用 Cloud Run Admin API 後,系統會自動建立 Compute Engine 預設服務帳戶。
- 查看 Cloud Run 定價,或使用 Pricing Calculator 估算費用。
-
專案的「Cloud Run 原始碼開發人員」 (
roles/run.sourceDeveloper) -
服務帳戶使用者 (
roles/iam.serviceAccountUser) 服務身分 -
專案的記錄檢視器 (
roles/logging.viewer) 建立名為
jobs的新目錄,然後將目錄變更為該目錄:mkdir jobs cd jobs建立 Dockerfile 檔案,並加入下列內容:
在同一個目錄中,建立
script.sh檔案,用於存放實際工作程式碼。將下列範例行複製到檔案中:使用者可以透過 Cloud Run 工作指定工作要執行的工作數量。這個程式碼範例說明如何使用內建的
CLOUD_RUN_TASK_INDEX環境變數。每個工作都代表一個正在執行的容器副本。 請注意,工作通常會並行執行。如果每個工作都能獨立處理資料子集,使用多個工作就很有用。每項工作都會知道自己的索引,並儲存在
CLOUD_RUN_TASK_INDEX環境變數中。內建的CLOUD_RUN_TASK_COUNT環境變數包含工作執行期間透過--tasks參數提供的任務數量。程式碼也顯示如何使用內建的
CLOUD_RUN_TASK_ATTEMPT環境變數重試工作。這個變數包含這項工作重試的次數,第一次嘗試時為 0,每次重試都會遞增 1,最多為--max-retries。您也可以透過程式碼產生失敗,測試重試機制並產生錯誤記錄,瞭解錯誤記錄的樣貌。
前往 Google Cloud 控制台的 Cloud Run:
在工作清單中找出要刪除的工作,然後按一下核取方塊來選取。
按一下「Delete」(刪除)。這會終止所有進行中的工作執行作業和所有執行中的容器執行個體。
必要的角色
如要取得完成本快速入門導覽課程所需的權限,請要求管理員授予您下列 IAM 角色:
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
授予 Cloud Build 服務帳戶專案存取權
除非您覆寫這項行為,否則 Cloud Build 會自動使用 Compute Engine 預設服務帳戶做為預設的 Cloud Build 服務帳戶,建構您的原始碼和 Cloud Run 資源。
如要讓 Cloud Build 建構來源,請在專案中將 Cloud Run 建構者 (roles/run.builder) 角色授予 Cloud Build 服務帳戶:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_EMAIL_ADDRESS \ --role=roles/run.builder
將 PROJECT_ID 替換為您的 Google Cloud專案 ID,並將 SERVICE_ACCOUNT_EMAIL_ADDRESS 替換為 Cloud Build 服務帳戶的電子郵件地址。如果您使用 Compute Engine 預設服務帳戶做為 Cloud Build 服務帳戶,請使用下列格式的服務帳戶電子郵件地址:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
將 PROJECT_NUMBER 替換為您的專案編號。 Google Cloud
如需如何找出專案 ID 和專案編號的詳細操作說明,請參閱「建立與管理專案」。
授予 Cloud Run 建構工具角色需要幾分鐘才能傳播。
撰寫範例工作
如要編寫執行 Shell 指令碼的 Cloud Run 工作,請按照下列步驟操作:
程式碼已完成,可以封裝在容器中。
建構工作容器、傳送至 Artifact Registry,並部署至 Cloud Run
本快速入門導覽課程使用從來源部署功能,該功能會建構容器、將容器上傳至 Artifact Registry,並將工作部署至 Cloud Run:
gcloud run jobs deploy job-quickstart \ --source . \ --tasks 50 \ --set-env-vars SLEEP_MS=10000 \ --set-env-vars FAIL_RATE=0.1 \ --max-retries 5 \ --region REGION \ --project=PROJECT_ID
其中 PROJECT_ID 是您的專案 ID,REGION 則是您的區域,例如 europe-west1。請注意,您可以將各種參數變更為您想用於測試的值。SLEEP_MS 會模擬工作,並導致 X% 的工作失敗,方便您實驗平行處理和重試失敗工作。FAIL_RATE
在 Cloud Run 中執行工作
如要執行剛建立的工作,請按照下列步驟操作:
gcloud run jobs execute job-quickstart --region REGION
將 REGION 替換為您在建立及部署工作時使用的區域,例如 europe-west1。
清除所用資源
為避免系統向您的 Google Cloud 帳戶收取額外費用,請刪除您透過本快速入門導覽課程部署的所有資源。
刪除存放區
Cloud Run 只會針對工作執行時間收費。不過,您可能仍須支付在 Artifact Registry 中儲存容器映像檔的費用。如要刪除 Artifact Registry 存放區,請按照 Artifact Registry 說明文件中的「刪除存放區」一節操作。
刪除工作
只有在執行工作時,Cloud Run 工作才會產生費用。 如要刪除 Cloud Run 工作,請按照下列步驟操作:
控制台
如要刪除工作:
gcloud
如要刪除 Job,請執行下列指令:
gcloud run jobs delete JOB_NAME
將 JOB_NAME 改為工作名稱。
刪除測試專案
刪除專案後,系統就會停止對該專案中的所有資源收取費用。 Google Cloud 如要釋出專案中的所有 Google Cloud 資源,請按照下列步驟操作:
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
後續步驟
如要進一步瞭解如何從程式碼來源建構容器並推送至存放區,請參閱: