FirebaseのCloudFunctionは自前でサーバサイドを持たなくてもちょっとした処理ならhttps経由で実行したり出来るので便利。実装のしづらさはあるけど、よく使っている。
そこでちょっと困ることがあって、CloudFunctionsはそれ単独では定期実行出来ないという問題がある。Google App EngineのPub/Subを使うとか、やり方はいろいろあるんだけど非常にめんどくさい。
だがついに簡単にジョブスケジューリング出来るGoogle Cloud Schedulerが誕生したのである。
Google Cloudがマネージドcronサービスを提供、自分でcronするより楽?
今回はFirebase経由で作ったCloudFunctidonsを叩きたいので、GCPから見えるか念のためチェック。
普通に見える。
次はcloud schedulerからcloud functionが叩けるかどうか確認しておきたい。
Google Cloud Scheduler は、フルマネージドの cron ジョブ スケジューリング サービスです。これを使用して、App Engine でジョブをトリガーしたり、Pub/Sub メッセージを送信したり、定期的なスケジュールで任意の HTTP/S エンドポイントをヒットさせたりすることができます。
httpsエンドポイントをヒットさせることができるという文言があるので、CloudFunctionが叩けることが分かる。
やってみる
ジョブを作成する。crontabと同じ記法でジョブの周期を設定出来る。
今すぐ実行をして、Firebase側のCloudFunctionのログが流れていることが確認出来た。
これは楽ちんだな。非常に良い。