回答:
2019-04-18を更新
Firebaseを介してCloud Functionsにスケジュールされたコードをデプロイする非常に簡単な方法が用意されました。
単純なテキスト構文を使用できます。
export scheduledFunctionPlainEnglish =
functions.pubsub.schedule('every 5 minutes').onRun((context) => {
console.log('This will be run every 5 minutes!');
})
または、より柔軟なcronテーブル形式:
export scheduledFunctionCrontab =
functions.pubsub.schedule('5 11 * * *').onRun((context) => {
console.log('This will be run every day at 11:05 AM UTC!');
});
これについて詳しくは、以下を参照してください。
これが機能するためにはプロジェクトがBlazeプランに含まれている必要があることに注意してください。そのため、以下の代替オプションは参照用に残しておきます。
Cloud Functionの単一の呼び出しを別のトリガーの実行内からの遅延でスケジュールする場合は、Cloud Tasksを使用してそれを設定できます。 それがどのように機能するかの拡張例については、この記事を読んでください。
以下の元の答え...
組み込みのrunat / cronタイプのトリガーはまだありません。
現時点では、外部サービスを使用してHTTP関数を定期的にトリガーするのが最善の方法です。詳細については、functions-samplesリポジトリのこのサンプルを参照してください。または、最近導入されたGoogle Cloud Schedulerを使用して、PubSubまたはHTTPSを介してCloud Functionsをトリガーします。
また、Firebaseブログのこの投稿を読むことを強くお勧めします。Firebase用Cloud Functionsを使用してジョブをスケジュール(Cron)する方法と、このビデオ:HTTPトリガーとCronを使用してCloud Functions for Firebaseをタイミング調整する。
その最後のリンクはcron-job.orgを使用してCloud Functionsをトリガーし、無料プランのプロジェクトで機能します。これにより、誰でも許可なしに関数を呼び出すことができるため、コード自体に乱用防止メカニズムを含めることができます。
Each Cloud Scheduler job costs $0.10 (USD) per month
、「ジョブ」を想定することは、スケジュールされたものが発動するたびに意味するのではなく、タイマーあたりのコストを意味しますか?つまり、毎分実行されるジョブのコストはわずか0.10ドルですか?(呼び出すクラウド関数を除きます)。
あなたができることは、cronジョブによってトリガーされ、PubSubに発行されるAppEngineインスタンスを起動することです。私はそれについてブログ記事を書きました、あなたは見てみたいかもしれません:
https://mhaligowski.github.io/blog/2017/05/25/scheduled-cloud-function-execution.html
cron-job.org
ジェンがブログ投稿で話しているという事実を含めて、自由に使用できます。