🕌
Cloud Scheduler から Cloud Run の エンドポイントを POST する方法
Cloud Schedulerとは
Google Cloudが提供するCronサービスです。(雑)
Google Cloudで定期的になんかやりたいと思ったら、こやつを使うことを検討するんじゃないでしょうか。
安いし。
でも、情報が充実してない(執筆時現在)ですよね。
HTTPでCloudRunのエンドポイント呼ぶだけで地味に疲れました。
なので、やり方を残しておこうと思います。
Cloud Run でAPIサーバを建てる
この時、トリガーを「すべてのトラフィックを許可する」を選択しないと上手くいかなかった。
サービスアカウントを作成する
サービスアカウントを新規作成して、ロールに「CloudRun 起動元」を付与しておく。
Cloud Schedulerのジョブを作成する
ジョブ作成時の「スケジュールを定義する」は特に躓かないだろう。
問題は「実行内容を構成する」のところ。私は結構ハマった。
記述の方法は画像の通り。
サービスアカウントには、ロールに「CloudRun 起動元」を付与したやつを指定する。
注意したいのは本文のところ。
ここにはどうやら文字列しか置けないらしく、数値の指定はどうやってもエラーになった。
※本文の指定は正しくは {"key":"value"}
となります。
感想
他にいい感じにできる方法知ってる方は是非教えてください。
参考
Discussion