cron ジョブのスケジュールを設定して実行する

このクイックスタートでは、Cloud Scheduler を使用して基本的なオペレーションを行う方法について説明します。

このクイックスタートでは、以下の操作を行います。

  1. Cloud Scheduler を使用して cron ジョブを作成する。
  2. ジョブの定期的なスケジュールを設定する。
  3. Pub/Sub トピックをジョブ ターゲットとして指定する。
  4. ジョブを実行する。
  5. ジョブが正常に実行されていることを確認します。

Cloud Scheduler には無料枠があるため、クイックスタートを実行しても費用は発生しません。詳細については、料金をご覧ください。


このタスクを Google Cloud コンソールで直接行う際の順を追ったガイダンスについては、[ガイドを表示] をクリックしてください。

ガイドを表示


始める前に

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. Google Cloud CLI をインストールします。
  5. gcloud CLI を初期化するには:

    gcloud init
  6. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  7. Google Cloud プロジェクトで課金が有効になっていることを確認します

  8. Google Cloud CLI をインストールします。
  9. gcloud CLI を初期化するには:

    gcloud init
  10. Cloud Shell を使用しない場合は、Google Cloud CLI コンポーネントを更新します。
    gcloud components update
  11. 自分のアカウントでログインします。
    gcloud auth login
  12. Cloud Scheduler と Pub/Sub API を有効にします。

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

Pub/Sub トピックとサブスクリプションを作成する

Pub/Sub トピックは、パブリッシャーがメッセージを送信できるリソースです。トピックにパブリッシュされたメッセージを受信するには、そのトピックへのサブスクリプションを作成する必要があります。

  1. cron ジョブのターゲットとして使用する Pub/Sub トピックを設定します。

    gcloud pubsub topics create cron-topic
    

    これにより、cron-topic というトピックが作成されます。

  2. ジョブの結果を表示するには、Pub/Sub サブスクリプションを作成します。

    gcloud pubsub subscriptions create cron-sub --topic cron-topic
    

Cloud Scheduler を使用して cron ジョブを作成する

定期的なスケジュールでターゲットに送信される、cron ジョブと呼ばれる定期的な作業単位を設定します。

  1. Google Cloud コンソールで、[Cloud Scheduler] ページに移動します。

    Cloud Scheduler に移動

  2. [ジョブを作成] をクリックします。

  3. ジョブに名前を付けます。

  4. [リージョン] リストで、ジョブのリージョンを選択します。

  5. ジョブの [頻度] を、unix-cron に基づく形式で指定します。次に例を示します。

    30 16 * * 7
    

    詳細については、cron ジョブ スケジュールの構成をご覧ください。

  6. [タイムゾーン] リストで、タイムゾーンを選択します。

    一部のタイムゾーンでは、夏時間が原因で、ジョブが予期せず実行されるか、実行されない可能性があります。詳細については、タイムゾーンをご覧ください。

  7. [続行] をクリックします。

  8. [ターゲット タイプ] リストで、Pub/Sub を選択します。

  9. 先ほど作成した、cron-topic のトピックを選択します。

  10. [メッセージ本文] フィールドに、Pub/Sub ターゲット トピックに送信する文字列を入力します。例: 「Hello world!」

  11. [作成] をクリックします。

日曜日の 16:30 に Pub/Sub トピックにメッセージを送信するジョブを作成しました。このジョブを実行できるようになりました。

ジョブを実行する

指定したスケジュールに沿ってジョブを実行するだけでなく、即時実行を強制的に行うこともできます。

  1. Google Cloud コンソールで、[Cloud Scheduler] ページに移動します。

    Cloud Scheduler に移動

    ジョブが一覧表示されます。

  2. ジョブの行で、 [アクション] > [ジョブ実行を強制] をクリックします。

    初期構成によっては、プロジェクトで作成された最初のジョブの実行に数分かかることがあります。

  3. [最後の実行のステータス] 列の Success ステータスに、cron ジョブが正常に実行されたことが表示されます。

次に、Pub/Sub がメッセージを受信したことを確認できます。

Pub/Sub で結果を確認する

Pub/Sub トピックがジョブからメッセージを受け取ったことを確認する

  1. サブスクリプションから Pub/Sub メッセージを pull する

    gcloud pubsub subscriptions pull cron-sub --limit 5
    

    最初に pull されたメッセージがない場合は、コマンドを再実行します。

  2. ジョブの実行結果を表示します。出力は次のようになります。

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

クリーンアップ

このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の手順を行います。

  1. 作成した cron ジョブを削除します。

    1. Google Cloud コンソールで、[Cloud Scheduler] ページに移動します。

      Cloud Scheduler に移動

    2. ジョブのチェックボックスを選択します。

    3. [削除] をクリックして、削除を確定します。

  2. Pub/Sub トピックを削除します。

    1. Google Cloud コンソールで、[Pub/Sub] ページに移動します。

      [Pub/Sub] に移動

    2. トピックのチェックボックスを選択します。

    3. [削除] をクリックして、削除を確定します。

  3. プロジェクトを削除する:

    1. Google Cloud コンソールで、[リソースの管理] ページに移動します。

      [リソースの管理] に移動

    2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
    3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。

次のステップ