使用 gcloud CLI 安排及執行 Cron 工作

本快速入門導覽課程說明如何使用 gcloud CLI,透過 Cloud Scheduler 執行一些基本作業。

在本快速入門導覽課程中,您將:

  1. 建立 Pub/Sub 主題,做為 Cloud Scheduler 工作目標。
  2. 使用 Cloud Scheduler 建立 Cron 工作,並為該工作設定週期性排程。
  3. 執行工作。
  4. 確認工作已成功執行。

Cloud Scheduler 提供免費方案,因此執行本快速入門導覽課程不會產生任何費用。詳情請參閱「定價」。

事前準備

  1. 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.
  2. Install the Google Cloud CLI.

  3. 如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI

  4. 如要初始化 gcloud CLI,請執行下列指令:

    gcloud init
  5. Create or select a Google Cloud project.

    • 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.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Cloud Scheduler, Pub/Sub APIs:

    gcloud services enable cloudscheduler.googleapis.com pubsub.googleapis.com
  8. Install the Google Cloud CLI.

  9. 如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI

  10. 如要初始化 gcloud CLI,請執行下列指令:

    gcloud init
  11. Create or select a Google Cloud project.

    • 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.

  12. Verify that billing is enabled for your Google Cloud project.

  13. Enable the Cloud Scheduler, Pub/Sub APIs:

    gcloud services enable cloudscheduler.googleapis.com pubsub.googleapis.com
  14. 建立 Pub/Sub 主題和訂閱項目

    Pub/Sub 主題是發布者可傳送訊息的資源。 如要接收發布至某項主題的訊息,您必須為該主題建立訂閱項目。

    1. 設定 Pub/Sub 主題做為 Cron 工作的目標:

      gcloud pubsub topics create cron-topic
      

      這會建立名為「cron-topic」的主題。

    2. 如要接收訊息及查看工作結果,請建立 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-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 主題是否收到來自作業的訊息。

    1. 從訂閱項目提取 Pub/Sub 訊息:

      gcloud pubsub subscriptions pull cron-sub --limit 5
      

      如果一開始並沒有提取任何訊息,請再次執行指令。

    2. 查看執行工作的結果。畫面會顯示類似以下的輸出內容:

      DATA: Hello world!
      MESSAGE_ID: 5028933846601543
      ORDERING_KEY:
      ATTRIBUTES:
      DELIVERY_ATTEMPT:
      ACK_ID: RFAGFixdRkhRNxkIaFEOT14jPzUgKEUQAgVPAihdeTFXLkFacGhRDRlyfWB9[...]
      

    清除所用資源

    如要避免系統向您的 Google Cloud 帳戶收取本頁面所用資源的費用,請刪除含有這些資源的 Google Cloud 專案。

      Delete a Google Cloud project:

      gcloud projects delete PROJECT_ID

    或者,刪除您為本快速入門導覽課程建立的資源:

    1. 刪除 Cron 工作。在 Cloud Shell 或安裝 gcloud CLI 的機器上執行下列指令:

      gcloud scheduler jobs delete MY_JOB \
          --location="LOCATION"
      

      更改下列內容:

      • MY_JOB:要刪除的工作名稱。
      • LOCATION:工作地點。根據預設,如果有關聯的應用程式,系統會使用目前專案的 App Engine 應用程式位置。
    2. 刪除 Pub/Sub 主題。在 Cloud Shell 或安裝 gcloud CLI 的電腦上執行下列指令:

      gcloud pubsub topics delete TOPIC_ID
      

      TOPIC_ID 替換為要刪除的 Pub/Sub 主題 ID。

    3. 刪除 Pub/Sub 訂閱項目。在 Cloud Shell 或安裝 gcloud CLI 的電腦上,執行下列指令:

      gcloud pubsub subscriptions delete SUBSCRIPTION_ID
      

      SUBSCRIPTION_ID 替換為要刪除的 Pub/Sub 訂閱 ID。

    後續步驟