使用 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. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. 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.

  5. Make sure that billing is enabled for your Google Cloud project.

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

    gcloud services enable cloudscheduler.googleapis.com pubsub.googleapis.com
  7. Install the Google Cloud CLI.
  8. To initialize the gcloud CLI, run the following command:

    gcloud init
  9. 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.

  10. Make sure that billing is enabled for your Google Cloud project.

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

    gcloud services enable cloudscheduler.googleapis.com pubsub.googleapis.com

创建 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"

您创建了一个作业,该作业会在周日下午 4:30 向您的 Pub/Sub 主题发送“Hello world”消息。

您现在可以运行作业了。

运行作业

除了按照指定的时间表执行作业之外,您还可以强制作业立即运行:

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。

后续步骤