Jeśli chcesz zaplanować uruchamianie funkcji w określonych godzinach, użyj functions.pubsub.schedule().onRun()
Ta wygodna metoda tworzy temat Pub/Sub i używa narzędzia Cloud Scheduler do wyzwalania zdarzeń w tym temacie, zapewniając, że funkcja działa w żądany harmonogram.
Zanim zaczniesz
Aby korzystać z tego rozwiązania w projekcie Firebase, Twój projekt musi być objęty abonamentem Blaze. Jeśli nie jest jeszcze objęty abonamentem Blaze, uaktualnij swój abonament .
Chociaż płatności są wymagane, możesz oczekiwać, że całkowity koszt będzie możliwy do opanowania, ponieważ każde zadanie Cloud Scheduler kosztuje 0,10 USD (USD) miesięcznie, a na konto Google dostępne są trzy bezpłatne zadania. Użyj kalkulatora cen Blaze, aby wygenerować szacunkowy koszt na podstawie przewidywanego użycia.
W Twoim projekcie muszą być włączone interfejsy API Pub/Sub i Cloud Scheduler. Powinny być już włączone w większości projektów Firebase; możesz zweryfikować w konsoli Google Cloud Platform .
Napisz zaplanowaną funkcję
W Cloud Functions dla Firebase logika planowania znajduje się w kodzie funkcji, bez specjalnych wymagań dotyczących czasu wdrażania. Aby utworzyć zaplanowaną funkcję, użyj functions.pubsub.schedule('your schedule').onRun((context))
. Na przykład, aby uruchamiać funkcję co pięć minut ze składnią cron.yaml App Engine , wykonaj coś takiego:
exports.scheduledFunction = functions.pubsub.schedule('every 5 minutes').onRun((context) => {
console.log('This will be run every 5 minutes!');
return null;
});
Cloud Scheduler obsługuje zarówno składnię Unix Crontab, jak i App Engine. Na przykład, aby użyć Crontab do wybrania określonej strefy czasowej, w której ma zostać uruchomiona zaplanowana funkcja, wykonaj coś takiego:
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;
});
Wartość timeZone
musi być nazwą strefy czasowej z bazy danych tz . Więcej informacji o obsługiwanych usługach znajdziesz w dokumentacji Cloud Scheduler .
Wdróż zaplanowaną funkcję
Po wdrożeniu zaplanowanej funkcji powiązane zadanie harmonogramu i temat pub/sub są tworzone automatycznie. Firebase CLI odzwierciedla nazwę tematu i możesz wyświetlić zadanie i temat w konsoli GCP . Temat nosi nazwę zgodnie z następującą konwencją:
zaplanowana function_name firebase - region
Na przykład:
Zaplanowana-zaplanowana-funkcja-zaplanowana-firebaseCrontab-us-east1.