Firebase Cloud Functionsで定期実行する方法

Firebase Cloud Functionsとは?

Firebase Cloud Functionsは、HTTPS リクエストやFirebaseのDBの更新など、設定したトリガーでバックエンド処理を自動的に実行する機能です。

様々なトリガーが用意されており、Firebaseの他の機能との連携が取りやすく、また、GCPで管理されているため、独自のサーバーを管理およびスケーリングする必要はありません。

料金についても無料枠が大きく設定されており、呼び出しだけでも最初の200万回/月無料(コンピューティング時間にも無料枠設定あり)とサービス開始時のサーバー費用の負担を減らすことが可能です。


事前準備

Firebase Cloud Functionsで定期実行を行うためには、まず、Firebaseのプランを従量制のBlazeの料金プランにする必要があります。

利用した分だけ課金される方式ですが、上でも紹介したように、無料枠が大きく設定されているのでテストの範囲だと請求はないと思って大丈夫かと思います。ちなみに、24時間毎分起動してDBへデータ投入するFunctionの請求金額は、1ヶ月稼働して1円でした。

利用金額については、こちらのヘルプをご確認ください。

定期実行のFunctionの書き方


schedule('every 1 minutes')の部分がスケジュールの指定になりますが、CrontabまたはAppEngineのスケジュール書式で記述します。

毎日17時に起動、など時間を指定する場合は、タイムゾーンの設定も必要です。

記述方法の詳細はヘルプをご確認ください。


デプロイしてみる

FirebaseのCLIで定期実行するFunctionをデプロイすると、コンソール上ではこんな感じに見えます。

定期実行のFunctionの一時停止や再開は、GCPのコンソールで行うことが可能です。

以前はFirebase Cloud Functionsは定期実行に対応していませんでしたが、有料ではありますが定期実行にも対応したことで、サーバーレスなアプリケーションを支えるサービスが充実したように思います。


Firebase Cloud FunctionsのHTTP トリガーをアプリから呼ぶ方法についてはこちらで記事にしました。

※掲載内容は、記事公開時点のものです。紹介されているサービス内容は変更される場合がありますので、ご利用の際は事前にサービス提供元等をご確認ください。

mochi

SIerで3年、Web制作会社で3年、主にWeb系のJava、Androidエンジニアとして働いてきました。2015年から3年、出産・育児で開発を離れており、2019年4月からシンプルメーカーで勤務しているママエンジニアです。現在はFirebase案件を担当しています。

銀座ITラボ | FirebaseやAWSに関する技術情報を配信中

銀座ITラボは、iOS/Androidアプリなどのスマホアプリ、Firebase、AWSなどのクラウドサービス、Webシステム等の技術情報に関する記事を紹介するシンプルメーカーのオウンドメディアです。