Google is committed to advancing racial equity for Black communities. See how.
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

計劃功能

如果您希望安排函數在指定時間運行,請使用functions.pubsub.schedule().onRun()這種便捷的方法可以創建Google Cloud Pub / Sub主題,並使用Google Cloud Scheduler觸發有關該主題的事件,從而確保您的功能按預期的時間表運行。

在你開始之前

要在Firebase項目中使用此解決方案,您必須處於Blaze計費計劃中。如果您尚未使用Blaze,請升級您的帳戶

儘管需要計費,但您可以期望總體成本是可控的,因為每個Cloud Scheduler作業每月的費用為$ 0.10(USD),並且每個Google帳戶可以提供三個免費作業。使用Blaze 定價計算器可根據您的預計使用量生成成本估算。

必須為您的項目啟用Google Cloud Pub / Sub和Cloud Scheduler API。大多數Firebase項目應已啟用這些功能。您可以在Google Cloud Platform Console中進行驗證。

編寫預定的函數

在用於Firebase的Cloud Functions中,調度邏輯駐留在您的函數代碼中,沒有特殊的部署時間要求。要創建計劃功能,請使用functions.pubsub.schedule('your schedule').onRun((context)) 。例如,要每五分鐘使用AppEngine cron.yaml語法運行一個函數,請執行以下操作:

 exports.scheduledFunction = functions.pubsub.schedule('every 5 minutes').onRun((context) => {
  console.log('This will be run every 5 minutes!');
  return null;
});
 

Google Cloud Scheduler支持Unix Crontab和AppEngine語法。例如,要使用Crontab選擇運行計劃功能的特定時區,請執行以下操作:

 exports.scheduledFunctionCrontab = functions.pubsub.schedule('5 11 * * *')
  .timeZone('America/New_York') // Users can choose timezone - default is America/Los_Angeles
  .onRun((context) => {
  console.log('This will be run every day at 11:05 AM Eastern!');
  return null;
});
 

timeZone的值必須是tz數據庫中的時區名稱。有關受支持屬性的更多信息,請參見《 Cloud Scheduler參考 》。

部署預定功能

部署計劃的功能時,將自動創建相關的計劃程序作業和pub / sub主題。 Firebase CLI回顯主題名稱,您可以在GCP控制台中查看作業和主題。根據以下約定命名主題:

firebase-scheduled- function_name region

例如:

firebase-scheduled-scheduledFunctionCrontab-us-east1。