使用 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.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 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.enablepermission. 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.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 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.enablepermission. 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
或者,刪除您為本快速入門導覽課程建立的資源: