Funktionen planen


Wenn Sie die Ausführung von Funktionen zu bestimmten Zeiten planen möchten, verwenden Sie den onSchedule-Handler zum Erstellen eines Pub/Sub-Thema, das Cloud Scheduler zum Auslösen von Ereignissen zu diesem Thema.

Hinweis

Damit Sie diese Lösung in Ihrem Firebase-Projekt verwenden können, muss Ihr Projekt den Blaze-Preisplan haben. Wenn er nicht bereits im Tarif "Blaze" enthalten ist, Ihr Preismodell upgraden.

Auch wenn die Abrechnung erforderlich ist, können Sie davon ausgehen, dass die Gesamtkosten überschaubar sind, jeder Cloud Scheduler-Job kostet 0, 10 $pro Monat und es gibt bis zu drei Jobs pro Google-Konto. Blaze verwenden Preisrechner zum Erstellen einer Kostenschätzung basierend auf Ihrer voraussichtlichen Nutzung.

Die APIs Pub/Sub und Cloud Scheduler müssen aktiviert sein für Ihr Projekt arbeiten. Diese sollten für die meisten Firebase-Projekte bereits aktiviert sein. können Sie in der Google Cloud Console überprüfen.

Geplante Funktion schreiben

In Cloud Functions for Firebase befindet sich die Planungslogik im Funktionscode, ohne spezielle Anforderungen an die Bereitstellungszeit. Um eine geplante Funktion zu erstellen, functions.pubsub.schedule('your schedule').onRun((context)) verwenden. Wenn Sie z. B. jedes Mal eine Funktion fünf Minuten mit App Engine cron.yaml Gehen Sie so vor:

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

Sowohl Unix-Crontab- als auch App Engine-Syntax werden von Cloud Scheduler unterstützt. Wenn Sie z. B. Crontab verwenden möchten, um ein Zeitzone festlegen, in der eine geplante Funktion ausgeführt werden soll, gehen Sie in etwa so vor:

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;
});

Der Wert für timeZone muss ein Zeitzonenname aus der tz-Datenbank enthält. Weitere Informationen finden Sie in der Referenz zu Cloud Scheduler finden Sie weitere Informationen zu unterstützten Properties.

Geplante Funktion bereitstellen

Wenn Sie eine geplante Funktion bereitstellen, werden der zugehörige Planerjob und Pub/Sub werden automatisch erstellt. Die Firebase-Befehlszeile gibt den Themennamen zurück, und Sie können den Job und das Thema in der Google Cloud Console. Das Thema wird nach der folgenden Konvention benannt:

firebase-scheduled-function_name-region

Beispiel:

firebase-scheduled-scheduledFunctionCrontab-us-east1.