Cloud Scheduler クイックスタート

このクイックスタートでは、Cloud Scheduler を使用した以下の基本的な操作について説明します。

  • Cloud Scheduler ジョブを作成する。
  • ジョブの定期的なスケジュールを設定する。
  • Cloud Pub/Sub トピックをジョブ ターゲットとして指定する。
  • ジョブを実行する。
  • 正常終了を確認する。

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

始める前に

次の手順に沿って、このクイックスタートの準備を行います。以下のステップのいくつかはすでに完了している場合もあります。

gcloud コマンドライン ツールをインストールして構成する

  1. Cloud SDK をインストールし、初期化します。

  2. プロダクトの gcloud コンポーネントを追加します。

     gcloud components install
    
  3. すべてのコンポーネントを更新します。

     gcloud components update
    

App Engine アプリを含むプロジェクトを作成する

既存のプロジェクトがあれば、そのプロジェクトを使うこともできます。

  1. Cloud SDK をインストールしたマシンでデバイスを開き、GCP プロジェクトを作成します。

     gcloud projects create [PROJECT_ID]
    

    PROJECT_ID は、作成するプロジェクトの ID です。プロジェクト ID は小文字で始まる必要があり、小文字の ASCII 文字、数字、ハイフンを使用できます。6〜30 文字でなければなりません。

  2. 選択したプロジェクトを使用するように gcloud を構成します。

     gcloud config set project [PROJECT-ID]
    

    PROJECT_ID は前のステップで設定した ID です。

  3. 次にアプリを作成します。

     gcloud app create [--region=REGION]
    

    [REGION] はアプリが実行されるロケーションです。App Engine コマンドの europe-west および us-central という名前の 2 つのロケーションは、Cloud Tasks コマンドではそれぞれ europe-west1 および us-central1 という名前になります。

    次のコマンドで既存のアプリのリージョンを確認できます。

     gcloud app describe
    

    リージョンは locationId によって示されます(例: locationId: us-central)。

    App Engine アプリのゾーンは、一度設定すると変更できません。

Google Cloud Platform Console を使用して機能を有効にする

  1. プロジェクトに対する課金を有効にします

  2. Cloud Scheduler API を有効にします

  3. Cloud Pub/Sub API を有効にします

gcloud を使用して Cloud Pub/Sub を設定する

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

    gcloud pubsub topics create cron-topic
    

    このコマンドは、「cron-topic」というトピックを作成します。クイックスタートの後半でこのトピックを使用するため、名前をメモしておきます。

  2. Cloud Pub/Sub サブスクリプションを作成します。ジョブの結果を表示するときにサブスクリプションが必要となります。

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

ジョブを作成する

  1. コンソールで [Cloud Scheduler] ページにアクセスします。

    Cloud Scheduler

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

  3. ジョブに名前を指定し、必要に応じて説明を追加します。

    画像

  4. ジョブの頻度unix-cron 形式で指定します。

    * * * * *
    

    詳細については、cron ジョブ スケジュールの構成をご覧ください。App Engine cron 形式に慣れているデベロッパーは、その形式も使用できます。

  5. タイムゾーンを選択します。

  6. [ターゲット] フィールドのプルダウン メニューから [Pub/Sub トピック] を選択し、前に作成したトピック(cron-topic)を入力します。

  7. Cloud Pub/Sub ターゲットに送信するペイロード文字列を追加します。

    画像

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

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

ジョブを実行する

  1. プロジェクトで開いた [Cloud Scheduler] コンソール ページで、[今すぐ実行] ボタンをクリックします。

    プロジェクトに作成された最初のジョブを初めて呼び出すときには、必要な構成があるため、実行までに数分間かかることがあります。このため、多少待つ必要がある可能性があります。

  2. [結果] 列で結果を確認します。

    画像

これで、Cloud Pub/Sub にメッセージを送信する cron ジョブの実行結果をコンソールで確認しました。次に、Cloud Pub/Sub が実際にメッセージを受け取っていることを確認する方法を説明します。

Cloud Pub/Sub で結果を確認する

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

  1. 次のコマンドを実行します。

     gcloud pubsub subscriptions pull cron-sub --limit 5
    
  2. 結果を確認します。次のような出力が表示されます。

     +-------------+----------------+------------+-----------------------------+
     | DATA        | MESSAGE_ID     | ATTRIBUTES | ACK_ID                      |
     +-------------+----------------+------------+-----------------------------+
     | hello cron! | 56344662920621 |            | EkwnGERJUytDCypYEU4EISE-... |
     +-------------+----------------+------------+-----------------------------+
     | hello cron! | 56340561244339 |            | EkwnGERJUytDCypYEU4EISE-... |
     +-------------+----------------+------------+-----------------------------+
     | hello cron! | 56340388879975 |            | EkwnGERJUytDCypYEU4EISE-... |
     +-------------+----------------+------------+-----------------------------+
     | hello cron! | 56337745052761 |            | EkwnGERJUytDCypYEU4EISE...  |
     +-------------+----------------+------------+-----------------------------+
     | hello cron! | 56337890896134 |            | EkwnGERJUytDCypYEU4EISE-... |
     +-------------+----------------+------------+-----------------------------+
    

クリーンアップ

このクイックスタートで使用したリソースについて GCP アカウントに課金されないようにする手順は次のとおりです。

Cloud Scheduler ジョブの削除

  1. GCP Console の [Cloud Scheduler] ページに移動します。

    [Scheduler] ページに移動

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

  3. ページの上部にある [削除] ボタンをクリックして、削除操作を確定します。

Pub/Sub トピックの削除

  1. GCP Console の [Cloud Pub/Sub] ページに移動します。

    [Pub/Sub] ページに移動

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

  3. ページの上部にある [削除] をクリックして、削除操作を確定します。

プロジェクトの削除

このクイックスタートのためだけにプロジェクトを作成した場合は、以下を実行します。

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

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

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

次のステップ