gcloud CLI を使用して cron ジョブをスケジュールして実行する
このクイックスタートでは、gcloud CLI を使用して Cloud Scheduler で基本的なオペレーションを行う方法について説明します。
このクイックスタートでは、以下の操作を行います。
- Cloud Scheduler ジョブ ターゲットとして設定する Pub/Sub トピックを作成します。
- Cloud Scheduler を使用して cron ジョブを作成し、ジョブの定期的なスケジュールを構成します。
- Job を実行します。
- ジョブが正常に実行されていることを確認します。
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 トピックは、パブリッシャーがメッセージを送信できるリソースです。 トピックにパブリッシュされたメッセージを受信するには、そのトピックへのサブスクリプションを作成する必要があります。
cron ジョブのターゲットとして使用する Pub/Sub トピックを設定します。
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
コマンドを使用して、Cloud Storage の Pub/Sub ターゲットに定期的なスケジュールで送信される cron ジョブと呼ばれる作業単位を設定します。スケジュールは 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 に Pub/Sub トピックに「Hello world」メッセージを送信するジョブを作成しました。
このジョブを実行できるようになりました。
ジョブを実行する
指定したスケジュールに沿ってジョブを実行するだけでなく、即時実行を強制的に行うこともできます。
gcloud scheduler jobs run my-cron-job --location="us-central1"
初期構成によっては、プロジェクトで作成された最初のジョブの実行に数分かかることがあります。
次に、Pub/Sub トピックがメッセージを受信したことを確認します。
Pub/Sub で結果を確認する
Pub/Sub トピックがジョブからメッセージを受け取ったことを確認する
サブスクリプションから Pub/Sub メッセージを pull する
gcloud pubsub subscriptions pull cron-sub --limit 5
最初に pull されたメッセージがない場合は、コマンドを再実行します。
ジョブの実行結果を表示します。出力は次のようになります。
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 トピックの ID に置き換えます。Pub/Sub サブスクリプションを削除します。Cloud Shell または gcloud CLI をインストールしたマシンで、次のコマンドを実行します。
gcloud pubsub subscriptions delete SUBSCRIPTION_ID
SUBSCRIPTION_ID
は、削除する Pub/Sub サブスクリプションの ID に置き換えます。
次のステップ
Cloud Scheduler の詳細