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.