Wenn Sie die Ausführung von Funktionen zu bestimmten Zeiten planen möchten, verwenden Sie den onSchedule
-Handler, um ein Pub/Sub-Thema zu erstellen, das Cloud Scheduler zum Auslösen von Ereignissen für dieses Thema verwendet.
Hinweis
Damit Sie diese Lösung in Ihrem Firebase-Projekt verwenden können, muss Ihr Projekt den Blaze-Preisplan haben. Wenn Sie noch keinen Blaze-Tarif haben, upgraden Sie Ihren Tarif.
Die Abrechnung ist zwar erforderlich, die Gesamtkosten sind jedoch überschaubar. Pro Cloud Scheduler-Job fallen 0,10 $ pro Monat an. Außerdem sind pro Google-Konto drei Jobs kostenlos. Sie können mithilfe des Preisrechners von Blaze eine Kostenschätzung für Ihre voraussichtliche Nutzung erstellen.
Die APIs Pub/Sub und Cloud Scheduler müssen für Ihr Projekt aktiviert sein. Diese sollten für die meisten Firebase-Projekte bereits aktiviert sein. Sie können dies in der Google Cloud Console überprüfen.
Geplante Funktion schreiben
In Cloud Functions for Firebase befindet sich die Planungslogik im Code Ihrer Funktionen, ohne besondere Anforderungen an die Bereitstellungszeit. Verwenden Sie functions.pubsub.schedule('your schedule').onRun((context))
, um eine geplante Funktion zu erstellen.
Wenn Sie beispielsweise eine Funktion alle fünf Minuten mit der App Engine-Syntax von cron.yaml ausführen möchten, 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;
});
Cloud Scheduler unterstützt sowohl Unix-Crontab- als auch die App Engine-Syntax. So wählen Sie beispielsweise mit Crontab eine bestimmte Zeitzone aus, in der eine geplante Funktion ausgeführt werden soll:
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 sein. Weitere Informationen zu unterstützten Properties finden Sie in der Cloud Scheduler-Referenz.
Geplante Funktion bereitstellen
Wenn Sie eine geplante Funktion bereitstellen, werden der zugehörige Scheduler-Job und das Pub/Sub-Thema automatisch erstellt. Die Firebase-Befehlszeile gibt den Themennamen zurück und Sie können den Job und das Thema in der Google Cloud Console ansehen. Das Thema wird gemäß der folgenden Konvention benannt:
firebase-scheduled-function_name-region
Beispiel:
firebase-scheduled-scheduledFunctionCrontab-us-east1.