46
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

Firebase Cloud Functionsの定期実行が、それ単体で簡単にできるようになった!

以前、Firebase Functionsを定期実行するには、Googleの他のクラウドサービスや外部サービスと連携する必要がありました。

さて、

  • firebase-functions NodeJS モジュールバージョン : 2.3.0
  • Firebase CLIバージョン : 6.7.0

を使うことで、Firebase Functions中の設定・実装のみで、Firebase Functionsの定期実行が行えるようになりました。(これらは、2019年4月時点では利用可能です。)


以下に、公式ドキュメントを参考に試したこと、確認した事項をまとめます。最新のドキュメントを確認してください。

  • 従量課金プランである「Blaze Plan」が必要
  • 内部的には、Google Cloud Pub/SubGoogle Cloud Schedulerを利用
  • そのためFirebaseプロジェクトが↑の機能が有効である必要がある
  • Google Cloud Scheduler2018年11月に正式リリースされた新しいサービス
  • Google Cloud Pub/SubとFirebase Functionsの連携は以前からサポートしていた。
  • デプロイすると自動的に↓ができる。これらはGoogle Cloud Consoleから確認できる。
    • Google Cloud Scheduler
    • Google Cloud Pub/Sub
  • 「Unix Crontab」と「AppEngine cron.yaml syntax」という形式で定期実行のタイミングを指定。(AppEngine cron.yaml syntaxはこちらを参照)
  • 該当のFirebase Functionsの関数を消すと、それと連動するCloud SchedulerとCloud Pub/Subも消えた(投稿者が記事執筆時に確認した挙動)

この機能追加、非常に嬉しく思います。

以前もGoogleの他のクラウドサービスや外部サービスと連携することで、Firebase Functionsの定期実行は可能でした。可能ではありましたが、Firebase Functions以外にも把握・実装・管理することが増え、面倒でした。(私もGoogle Cloud Pub/Subなど慣れていないクラウドサービス使い、四苦八苦しながらFirebase Functionsの定期実行を実装した覚えがあります。)

この機能追加により、ゲーム開発者/モバイル開発者/ウェブフロント開発者にとって、(表向きはとりあえず)Firebase Functionsを利用するだけで、定期実行処理が利用できるようになりました。(内部的には、Google Cloud SchedulerとGoogle Cloud Pub/Subを使っているので、把握していた方がベターではありますが。)

趣味開発や少人数でのプロトタイプ開発に、心強い味方になるのではないでしょうか?

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
46
Help us understand the problem. What are the problem?