みかづきブログ・カスタム

基本的にはちょちょいのほいです。

Cloud Functionsを定期的に実行する ⏰

f:id:kimizuka:20200615114604p:plain

昔はCloud Functionsに加え、Cloud Pub/SubCloud Schedulerで設定が必要だったようですが、いまはCloud Functionsで設定すれば、自動的にCloud Pub/SubのトピックとCloud Schedulerのジョブが作成されます。便利な時代になりましたね。

firebase.google.com

注意事項としては、

  1. Blazeプランへのアップグレード必須
  2. Pub/Sub API、Cloud Scheduler APIを有効にする必要あり(デフォルトで有効)
  3. Cloud Pub/SubのトピックとCloud Schedulerのジョブを手動で削除すべからず

です。すべてドキュメントに書いてあります。

記法

Unix の CrontabApp Engine 構文が使えますが、僕はCrontabで書いています。

www.ibm.com
cloud.google.com

日本時間で毎日10時に実行

exports.updateScore = functions.pubsub.schedule('0 10 * * *').timeZone('Asia/Tokyo').onRun(() => {
  // ここに毎日10時に実行したい処理を書く
});


5分ごとの実行

exports.updateScore = functions.pubsub.schedule('*/5 * * * *').onRun(() => {
  // ここに5分ごとに実行したい処理を書く
});



料金

3つのサービスを使うことになるので、それぞれ確認する必要があります。
Cloud Functionsの呼び出し回数(200万回まで)、コンピューティング時間(400,000 GB 秒、200,000 GHz 秒)、下りトラフィック(1GB)、Cloud Pub/Subのスループット(10 GiBまで)、Cloud Schedulerのジョブ(3つまで)無料で使えます。

Cloud Function

cloud.google.com

Cloud Pub/Sub

cloud.google.com

Cloud Scheduler

cloud.google.com