cron ジョブのスケジュールを設定して実行する
このクイックスタートでは、Cloud Scheduler を使用して基本的なオペレーションを行う方法について説明します。
このクイックスタートでは、以下の操作を行います。
- Cloud Scheduler を使用して cron ジョブを作成する。
- ジョブの定期的なスケジュールを設定する。
- Pub/Sub トピックをジョブ ターゲットとして指定する。
- ジョブを実行する。
- ジョブが正常に実行されていることを確認します。
Cloud Scheduler には無料枠があるため、クイックスタートを実行しても費用は発生しません。詳細については、料金をご覧ください。
このタスクを Google Cloud コンソールで直接行う際の順を追ったガイダンスについては、[ガイドを表示] をクリックしてください。
始める前に
- 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.
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
- Google Cloud CLI をインストールします。
-
gcloud CLI を初期化するには:
gcloud init
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
- Google Cloud CLI をインストールします。
-
gcloud CLI を初期化するには:
gcloud init
- Cloud Shell を使用しない場合は、Google Cloud CLI コンポーネントを更新します。
gcloud components update
- 自分のアカウントでログインします。
gcloud auth login
Cloud Scheduler と Pub/Sub API を有効にします。
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 ジョブを作成する
定期的なスケジュールでターゲットに送信される、cron ジョブと呼ばれる定期的な作業単位を設定します。
Google Cloud コンソールで、[Cloud Scheduler] ページに移動します。
[ジョブを作成] をクリックします。
ジョブに名前を付けます。
[リージョン] リストで、ジョブのリージョンを選択します。
ジョブの [頻度] を、unix-cron に基づく形式で指定します。次に例を示します。
30 16 * * 7
詳細については、cron ジョブ スケジュールの構成をご覧ください。
[タイムゾーン] リストで、タイムゾーンを選択します。
一部のタイムゾーンでは、夏時間が原因で、ジョブが予期せず実行されるか、実行されない可能性があります。詳細については、タイムゾーンをご覧ください。
[続行] をクリックします。
[ターゲット タイプ] リストで、Pub/Sub を選択します。
先ほど作成した、
cron-topic
のトピックを選択します。[メッセージ本文] フィールドに、Pub/Sub ターゲット トピックに送信する文字列を入力します。例: 「Hello world!」
[作成] をクリックします。
日曜日の 16:30 に Pub/Sub トピックにメッセージを送信するジョブを作成しました。このジョブを実行できるようになりました。
ジョブを実行する
指定したスケジュールに沿ってジョブを実行するだけでなく、即時実行を強制的に行うこともできます。
Google Cloud コンソールで、[Cloud Scheduler] ページに移動します。
ジョブが一覧表示されます。
ジョブの行で、> [ジョブ実行を強制] をクリックします。
[アクション]初期構成によっては、プロジェクトで作成された最初のジョブの実行に数分かかることがあります。
[最後の実行のステータス] 列の
Success
ステータスに、cron ジョブが正常に実行されたことが表示されます。
次に、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 アカウントに課金されないようにするには、次の手順を行います。
作成した cron ジョブを削除します。
Google Cloud コンソールで、[Cloud Scheduler] ページに移動します。
ジョブのチェックボックスを選択します。
[削除] をクリックして、削除を確定します。
Pub/Sub トピックを削除します。
Google Cloud コンソールで、[Pub/Sub] ページに移動します。
トピックのチェックボックスを選択します。
[削除] をクリックして、削除を確定します。
プロジェクトを削除する:
- Google Cloud コンソールで、[リソースの管理] ページに移動します。
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。
次のステップ
- Cloud Scheduler の詳細
- Cloud Scheduler のログを表示する方法を学ぶ