前回
定期実行するためには、対象プロジェクトのプランをBlazeに変更する必要がある。
これは、functionを通知するためのGoogle Cloud Pub/Sub
と定期的に通知する Cloud Scheduler API
を利用するためらしい。
なお
Google アカウントごとに 3 つのジョブを無料で使用できる
とのことなので、動作確認して見るだけならば無料でできそう。プラン変更直後にアラートを設定できるので、デフォルトの$25でメールが来る様に設定はしておいた。
実装は簡単で、functions.pubsub.schedule
を利用してfunctionを実装すればデプロイ時に適切に設定してくれるらしい。
exports.scheduledFunctionEvery1Minutes = functions.pubsub.schedule('every 1 minutes').onRun((context) => { console.log('This will be run every 1 minutes!'); return null; });
デプロイ後にコンソールを確認したところ、たしかに定期実行されておりGCPのコンソール上にcronジョブに関する記載が増えていた。 なおこのジョブを削除したいときはコンソール上で消すのではなく、jsの関数を削除するようにする。そうでないとcronやpub/sub、関数に不整合が発生した際にエラーが出るとのこと。
試しに上記関数をコメントアウトして再デプロイしてみたところ、 confirmはあったもののデプロイ後は一連の設定がコンソール上から消えていた