hamburger

主に日記

Firebase Cloud Functionsで定期実行してみる

前回

hamburger.hatenablog.jp

定期実行するためには、対象プロジェクトのプランを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はあったもののデプロイ後は一連の設定がコンソール上から消えていた