m's blog

備忘録とかメモとか

【GCP】Cloud SchedulerからCloud Runを起動してみる

Cloud Scheduler から Cloud Run を起動してみる

今回は Cloud Scheduler から Cloud Run を起動して みたいと思います!

目次

Cloud Run サービスの起動用サービスアカウントを作成

サービスアカウントの作成は頻出する内容なので、作成方法をまとめた記事を公開しています。

以下の記事を参考にして、サービスアカウントを作成してください。

※ 既に、Cloud Run サービスの起動用サービスアカウントを作ってある場合は、追加で作成する必要はありません。

Cloud Scheduler ジョブを作成する

コンソールから作成する場合

GCP のコンソールを開いて、Cloud Scheduler のページへ移動してください。

以下のような、ジョブの作成ボタンをクリックしてください。

ジョブを作成

以下のようなページが表示されるので、以下の画像を参考にジョブの設定を行ってください。

Cloud Scheduler ジョブを作成する

上の画像では、毎日4時半に起動するように設定してみました。

ターゲットは「HTTP」や「Pub/Sub」などが選択できます。

今回は、直接 Cloud Run サービスを起動するので「HTTP」を選択しています。

URLには起動するCloud Run サービスのURLを入力してください。

HTTPメソッドは「GET」を選択していますが、サービスに合わせて「POST」や「PUT」などに変更してください。

「Authヘッダー」項目は下の方にある「SHOW MORE」というところを、クリックすると表示されます。

サービスアカウントには、作成したCloud Run サービス起動用のサービスアカウントを設定してください。

gcloudを使って作成する場合

gcloud で Cloud Scheduler ジョブを作成する場合は、以下のようなコマンドを実行してください。

gcloud beta scheduler jobs create http test-scheduler --schedule "30 4 * * *" \
       --http-method=$HTTP_METHOD \
       --uri=$SERVICE_URL \
       --oidc-service-account-email=$SERVICE_ACCOUNT_EMAIL   \
       --oidc-token-audience=$SERVICE_URL

コンソールからの起動と同様に毎日4時半に起動するようにオプションを設定しています。

HTTP_METHOD 変数には、リクエスト時に使用する HTTP メソッドを設定してください。

SERVICE_URL には、起動する Cloud Run サービスの URL を入力してください。

SERVICE_ACCOUNT_EMAIL には、作成した Cloud Run サービス起動用のサービスアカウントを設定してください。

動作確認

GCP のコンソールを開いて、Cloud Scheduler のページへ移動してください。

ジョブリストが表示されるので、作成したジョブの「今すぐ実行」ボタンをクリックしてください。

Cloud Scheduler

結果項目に「成功」と表示されれば、ジョブの実行は成功です。

ログ項目の「表示」リンクをクリックすると、ジョブの実行内容が確認できます。

また、起動対象の Cloud Run サービスのログにより、サービスの動作内容を確認できます。

ジョブの実行ログ、サービスの動作ログともに問題なければ、設定完了です!

まとめ

以上、Cloud Scheduler から Cloud Run を起動する方法 について解説してみました。

gcloud でジョブの作成もできますが、自分の場合は、GCP のコンソールの方が合っているかなと思います。

コンソールの方だと GUI でわかりやい のはもちろんですし、なによりコマンドからジョブを作成したいという事も自分の場合はあまりないので、gcloud よりコンソールからかなといった感じです。

コンソールは、ログへのアクセスもしやすく、「今すぐ実行」ボタンで試しに実行みたいなこともでき、必要なものがシンプルにまとまっている印象です。

まだ、Cloud Scheduler を使っていない場合は、とりあえずコンソールから始めてみるのがいいかと思います。