クイックスタート: cron ジョブをスケジュールして実行する

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

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

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

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

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


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

ガイドを表示


以降のセクションでは、[ガイドを表示] をクリックした場合と同じ手順について説明します。

始める前に

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

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

  3. Cloud プロジェクトに対して課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。

  4. Google Cloud CLI をインストールして初期化します。
  5. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

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

  6. Cloud プロジェクトに対して課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。

  7. Google Cloud CLI をインストールして初期化します。
  8. Cloud Shell を使用していない場合は、Google Cloud CLI コンポーネントを更新します。
    gcloud components update
  9. 自分のアカウントでログインします。
    gcloud auth login
  10. Cloud Scheduler API と 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 ジョブと呼ばれる定期的な作業単位を設定します。

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

    Cloud Scheduler に移動

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

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

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

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

    * * * * *
    

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

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

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

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

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

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

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

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

1 分ごとに Pub/Sub トピックにメッセージを送信するジョブが作成されました。これで、ジョブを実行できるようになりました。

ジョブを実行する

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

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

    Cloud Scheduler に移動

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

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

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

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

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

Pub/Sub で結果を確認する

Pub/Sub トピックが Cloud Scheduler ジョブからメッセージを受信していることを確認します。

  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. 作成した Cloud Scheduler ジョブを削除します。

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

      Cloud Scheduler に移動

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

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

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

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

      [Pub/Sub] に移動

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

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

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

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

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

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

次のステップ