使用 gcloud CLI 安排及執行 Cron 工作
本快速入門導覽課程說明如何使用 gcloud CLI,透過 Cloud Scheduler 執行一些基本作業。
在本快速入門導覽課程中,您將:
- 建立 Pub/Sub 主題,做為 Cloud Scheduler 工作目標。
- 使用 Cloud Scheduler 建立 Cron 工作,並為該工作設定週期性排程。
- 執行工作。
- 確認工作已成功執行。
Cloud Scheduler 提供免費方案,因此執行本快速入門導覽課程不會產生任何費用。詳情請參閱「定價」。
事前準備
- 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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with 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_ID
with your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Scheduler, Pub/Sub APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable cloudscheduler.googleapis.com
pubsub.googleapis.com -
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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with 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_ID
with your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Scheduler, Pub/Sub APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable cloudscheduler.googleapis.com
pubsub.googleapis.com 設定 Pub/Sub 主題做為 Cron 工作的目標:
gcloud pubsub topics create cron-topic
這會建立名為「
cron-topic
」的主題。如要接收訊息及查看工作結果,請建立 Pub/Sub 訂閱項目:
gcloud pubsub subscriptions create cron-sub --topic cron-topic
從訂閱項目提取 Pub/Sub 訊息:
gcloud pubsub subscriptions pull cron-sub --limit 5
如果一開始並沒有提取任何訊息,請再次執行指令。
查看執行工作的結果。畫面會顯示類似以下的輸出內容:
DATA: Hello world! MESSAGE_ID: 5028933846601543 ORDERING_KEY: ATTRIBUTES: DELIVERY_ATTEMPT: ACK_ID: RFAGFixdRkhRNxkIaFEOT14jPzUgKEUQAgVPAihdeTFXLkFacGhRDRlyfWB9[...]
刪除 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
建立 Pub/Sub 主題和訂閱項目
Pub/Sub 主題是發布者可傳送訊息的資源。 如要接收發布至某項主題的訊息,您必須為該主題建立訂閱項目。
使用 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-central1" \
--message-body="Hello world"
您已建立工作,在星期日 16:30 將「Hello world」訊息傳送至 Pub/Sub 主題。
現在可以執行工作。
執行工作
除了按照指定時間表執行作業外,您也可以強制立即執行作業:
gcloud scheduler jobs run my-cron-job --location="us-central1"
請注意,由於某些初始設定的影響,在專案中建立的第一項工作可能需要幾分鐘的時間才能執行。
接著,您可以確認 Pub/Sub 主題是否收到訊息。
在 Pub/Sub 中驗證結果
確認 Pub/Sub 主題是否收到來自作業的訊息。
清除所用資源
如要避免系統向您的 Google Cloud 帳戶收取本頁面所用資源的費用,請刪除含有這些資源的 Google Cloud 專案。
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
或者,刪除您為本快速入門導覽課程建立的資源: