Zenn
🕌

Cloud Scheduler から Cloud Run の エンドポイントを POST する方法

に公開

Cloud Schedulerとは

Google Cloudが提供するCronサービスです。(雑)
Google Cloudで定期的になんかやりたいと思ったら、こやつを使うことを検討するんじゃないでしょうか。
安いし。

でも、情報が充実してない(執筆時現在)ですよね。
HTTPでCloudRunのエンドポイント呼ぶだけで地味に疲れました。
なので、やり方を残しておこうと思います。

Cloud Run でAPIサーバを建てる

この時、トリガーを「すべてのトラフィックを許可する」を選択しないと上手くいかなかった。

サービスアカウントを作成する

サービスアカウントを新規作成して、ロールに「CloudRun 起動元」を付与しておく。

Cloud Schedulerのジョブを作成する

ジョブ作成時の「スケジュールを定義する」は特に躓かないだろう。
問題は「実行内容を構成する」のところ。私は結構ハマった。

記述の方法は画像の通り。
サービスアカウントには、ロールに「CloudRun 起動元」を付与したやつを指定する。

注意したいのは本文のところ。
ここにはどうやら文字列しか置けないらしく、数値の指定はどうやってもエラーになった。

※本文の指定は正しくは {"key":"value"} となります。

感想

他にいい感じにできる方法知ってる方は是非教えてください。

参考

https://cloud.google.com/scheduler/docs/quickstart
https://cloud.google.com/run/docs/triggering/using-scheduler#console

Discussion

ログインするとコメントできます