Wenn Sie Funktionen so planen möchten, dass sie zu bestimmten Zeiten ausgeführt werden, verwenden Sie den onSchedule
-Handler, um ein Pub/Sub-Thema zu erstellen, bei dem mit Cloud Scheduler Ereignisse für dieses Thema ausgelöst werden.
Hinweis
Damit Sie diese Lösung in Ihrem Firebase-Projekt verwenden können, muss Ihr Projekt den Blaze-Tarif haben. Wenn Sie noch keinen Blaze-Tarif haben, upgraden Sie Ihren Preisplan.
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 prü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;
});
Sowohl die Unix-Crontab- als auch die App Engine-Syntax werden von Cloud Scheduler unterstützt. 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 CLI gibt den Namen des Themas zurück. Sie können den Job und das Thema in der Google Cloud Console aufrufen. Das Thema wird gemäß der folgenden Konvention benannt:
firebase-scheduled-function_name-region
Beispiel:
firebase-scheduled-scheduledFunctionCrontab-us-east1.