【Firebase】Cloud Schedulerを使いCloud Functionsを呼び出す方法

created 2021/02/08updated 2021/03/04

はじめに

Nuxt.jsでFirebase Cloud Functionsを使う方法の続きです。(Nuxt.js関係ないけども…) Cloud Schedulerを使用して、1日に1回レコードを更新します。 ※Firebaseのプロジェクトの方は、Cloud Functionsだけでcronを設定できるようです。 Firebaseを使わずにやる方法もおいおいやる機会はありそう。

準備

  • Cloud Functionsが息していることを確認する => 叩いてみる => OK!
bash
curl --header Content-Type:"application/json" {エンドポイント}

FirebaseではFunctionsだけでいけるみたい

js
exports.scheduledFunctionCrontab = functions.pubsub .schedule("*/1 * * * *") // 毎分に設定 .timeZone("Asia/Tokyo") // 日本に設定 .onRun(() => { console.log("テスト") return null })

デプロイ

bash
firebase deploy --only functions

firebase-toolsのバージョンをあげないといけなかった

bash
npm install -g firebase-tools

Cloud Scheduler

ちゃんと実行されてる!

最後に毎分実行を直しておきます。

cronの時間を調べるのに良さげサイト => crontab.guru

js
exports.scheduledFunctionCrontab = functions.pubsub .schedule("0 */3 * * *") // 3時間おき .timeZone("Asia/Tokyo") .onRun(() => { console.log("テスト") return null })

実行環境のオプション変更

関数のデプロイとランタイム オプションを管理する

参考