使用 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.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Scheduler, Pub/Sub APIs:
gcloud services enable cloudscheduler.googleapis.com
pubsub.googleapis.com - Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Scheduler, Pub/Sub APIs:
gcloud services enable cloudscheduler.googleapis.com
pubsub.googleapis.com
创建 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-central1" \
--message-body="Hello world"
您已经创建了一个作业,它会发送“Hello World”将消息发送到您的 Pub/Sub 搜索主题。
现在,您可以运行该作业了。
运行作业
除了按照指定的时间表执行作业之外,您还可以强制作业立即运行:
gcloud scheduler jobs run my-cron-job --location="us-central1"
请注意,由于需要进行一些初始配置,因此在项目中创建的第一项作业可能需要几分钟时间才能运行完毕。
接下来,您可以验证 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 项目。
Delete a Google Cloud project:
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 主题。删除 Pub/Sub 订阅。在 Cloud Shell 中或安装了 gcloud CLI 的机器上,运行以下命令:
gcloud pubsub subscriptions delete SUBSCRIPTION_ID
将
SUBSCRIPTION_ID
替换为要删除的 Pub/Sub 订阅的 ID。
后续步骤
详细了解 Cloud Scheduler