昔はCloud Functionsに加え、Cloud Pub/Sub、Cloud Schedulerで設定が必要だったようですが、いまはCloud Functionsで設定すれば、自動的にCloud Pub/SubのトピックとCloud Schedulerのジョブが作成されます。便利な時代になりましたね。
注意事項としては、
- Blazeプランへのアップグレード必須
- Pub/Sub API、Cloud Scheduler APIを有効にする必要あり(デフォルトで有効)
- Cloud Pub/SubのトピックとCloud Schedulerのジョブを手動で削除すべからず
です。すべてドキュメントに書いてあります。
記法
Unix の Crontab と App Engine 構文が使えますが、僕はCrontabで書いています。
日本時間で毎日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つまで)無料で使えます。