使用 gcloud CLI 安排及執行 Cron 工作
本快速入門導覽課程說明如何使用 gcloud CLI,透過 Cloud Scheduler 執行一些基本作業。
在本快速入門導覽課程中,您將:
- 建立 Pub/Sub 主題,做為 Cloud Scheduler 工作目標。
- 使用 Cloud Scheduler 建立 Cron 工作,並為該工作設定週期性排程。
- 執行工作。
- 確認工作已成功執行。
Cloud Scheduler 提供免費方案,因此執行本快速入門導覽課程不會產生任何費用。詳情請參閱「定價」。
事前準備
- 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init -
選取或建立專案所需的角色
- 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您已獲授角色,即可選取任何專案。
-
建立專案:如要建立專案,您需要「專案建立者」角色 (
roles/resourcemanager.projectCreator),其中包含resourcemanager.projects.create權限。瞭解如何授予角色。
-
建立 Google Cloud 專案:
gcloud projects create PROJECT_ID
將
PROJECT_ID替換為您要建立的 Google Cloud 專案名稱。 -
選取您建立的 Google Cloud 專案:
gcloud config set project PROJECT_ID
將
PROJECT_ID替換為 Google Cloud 專案名稱。
-
如要使用現有專案進行本指南中的操作,請確認您具有完成本指南所需的權限。如果您建立新專案,則已具備必要權限。
啟用 Cloud Scheduler 和 Pub/Sub API:
啟用 API 時所需的角色
如要啟用 API,您需要具備服務使用情形管理員 IAM 角色 (
roles/serviceusage.serviceUsageAdmin),其中包含serviceusage.services.enable權限。瞭解如何授予角色。gcloud services enable cloudscheduler.googleapis.com
pubsub.googleapis.com -
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init -
選取或建立專案所需的角色
- 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您已獲授角色,即可選取任何專案。
-
建立專案:如要建立專案,您需要「專案建立者」角色 (
roles/resourcemanager.projectCreator),其中包含resourcemanager.projects.create權限。瞭解如何授予角色。
-
建立 Google Cloud 專案:
gcloud projects create PROJECT_ID
將
PROJECT_ID替換為您要建立的 Google Cloud 專案名稱。 -
選取您建立的 Google Cloud 專案:
gcloud config set project PROJECT_ID
將
PROJECT_ID替換為 Google Cloud 專案名稱。
-
如要使用現有專案進行本指南中的操作,請確認您具有完成本指南所需的權限。如果您建立新專案,則已具備必要權限。
啟用 Cloud Scheduler 和 Pub/Sub API:
啟用 API 時所需的角色
如要啟用 API,您需要具備服務使用情形管理員 IAM 角色 (
roles/serviceusage.serviceUsageAdmin),其中包含serviceusage.services.enable權限。瞭解如何授予角色。gcloud services enable cloudscheduler.googleapis.com
pubsub.googleapis.com
必要的角色
如要取得完成本快速入門導覽課程所需的權限,請要求管理員在專案中授予您下列 IAM 角色:
- Cloud Scheduler 管理員 (
roles/cloudscheduler.admin) - Pub/Sub 編輯者 (
roles/pubsub.editor)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
建立 Pub/Sub 主題和訂閱項目
Pub/Sub 主題是發布端可傳送訊息的資源。如要接收發布至某項主題的訊息,您必須為該主題建立訂閱項目。
設定 Pub/Sub 主題做為 Cron 工作的目標:
gcloud pubsub topics create cron-topic這會建立名為「
cron-topic」的主題。如要接收訊息並查看工作結果,請建立 Pub/Sub 訂閱項目:
gcloud pubsub subscriptions create cron-sub --topic cron-topic
使用 Cloud Scheduler 建立 Cron 工作
使用 gcloud scheduler jobs create pubsub 指令設定工作單元 (也稱為「Cron 工作」),並根據週期性排程將工作單元傳送到 Pub/Sub 目標。排程是使用以 Unix-Cron 為基礎的格式指定。詳情請參閱「Cron 工作格式和時區」。
gcloud scheduler jobs create pubsub my-cron-job \
--schedule="30 16 * * 7" \
--topic=cron-topic \
--location="us-east1" \
--message-body="Hello world"
您已建立一項工作,會在星期日 16:30 將「Hello world」訊息傳送至 Pub/Sub 主題。
現在可以執行工作。
執行工作
除了按照指定時間表執行作業外,您也可以強制立即執行作業:
gcloud scheduler jobs run my-cron-job --location="us-east1"
請注意,由於某些初始設定的影響,在專案中建立的第一項工作可能需要幾分鐘的時間才能執行。
接著,您可以確認 Pub/Sub 主題是否收到訊息。
在 Pub/Sub 中驗證結果
確認 Pub/Sub 主題是否收到工作傳送的訊息。
從訂閱項目提取 Pub/Sub 訊息:
gcloud pubsub subscriptions pull cron-sub --limit 5如果一開始並沒有提取任何訊息,請再次執行指令。
查看執行工作的結果。畫面會顯示類似以下的輸出內容:
DATA: Hello world! MESSAGE_ID: 5028933846601543 ORDERING_KEY: ATTRIBUTES: DELIVERY_ATTEMPT: ACK_ID: RFAGFixdRkhRNxkIaFEOT14jPzUgKEUQAgVPAihdeTFXLkFacGhRDRlyfWB9[...]
清除所用資源
為了避免系統向您的 Google Cloud 帳戶收取本頁面所用資源的費用,請刪除含有這些資源的 Google Cloud 專案。
刪除 Google Cloud 專案:
gcloud projects delete PROJECT_ID
或者,刪除您為本快速入門導覽課程建立的資源:
刪除 Cron 工作。在 Cloud Shell 或安裝 gcloud CLI 的電腦上,執行下列指令:
gcloud scheduler jobs delete MY_JOB \ --location="LOCATION"更改下列內容:
MY_JOB:要刪除的工作名稱。LOCATION:工作地點。根據預設,如果有關聯的應用程式,系統會使用目前專案的 App Engine 應用程式位置。
刪除 Pub/Sub 主題。在 Cloud Shell 或安裝 gcloud CLI 的電腦上執行下列指令:
gcloud pubsub topics delete TOPIC_ID將
TOPIC_ID替換為要刪除的 Pub/Sub 主題 ID。刪除 Pub/Sub 訂閱項目。在 Cloud Shell 或安裝 gcloud CLI 的電腦上,執行下列指令:
gcloud pubsub subscriptions delete SUBSCRIPTION_ID將
SUBSCRIPTION_ID替換為要刪除的 Pub/Sub 訂閱 ID。
後續步驟
進一步瞭解 Cloud Scheduler