Zaplanowane funkcje (1 generacji)

Jeśli chcesz zaplanować uruchamianie funkcji w określonych godzinach, użyj modułu obsługi onSchedule, aby utworzyć temat Pub/Sub, który używa Cloud Scheduler do wywoływania zdarzeń w tym temacie.

Zanim zaczniesz

Chociaż zaplanowane funkcje są płatne, ogólny koszt powinien być niewielki, ponieważ każde zadanie Cloud Scheduler kosztuje 0, 10 USD miesięcznie, a na każde konto Google przysługują 3 bezpłatne zadania. Kalkulator cen Blaze pozwala oszacować koszty na podstawie przewidywanego wykorzystania.

W projekcie muszą być włączone interfejsy API Pub/Sub i Cloud Scheduler. W większości projektów w Firebase powinny być już włączone. Możesz to sprawdzić w konsoli Google Cloud.

Napisz zaplanowaną funkcję

W Cloud Functions for Firebase logika planowania znajduje się w kodzie funkcji i nie ma specjalnych wymagań dotyczących czasu wdrażania. Aby utworzyć zaplanowaną funkcję, użyj functions.pubsub.schedule('your schedule').onRun((context)). Aby na przykład uruchamiać funkcję co 5 minut, użyj składni App Engine cron.yaml w ten sposób:

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. Jeśli na przykład chcesz użyć Crontab do wybrania konkretnej strefy czasowej, w której ma być uruchamiana zaplanowana funkcja, wykonaj te czynności:

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 właściwościach znajdziesz w dokumentacji Cloud Scheduler.

Wdrażanie zaplanowanej funkcji

Gdy wdrażasz zaplanowaną funkcję, powiązane zadanie harmonogramu i temat Pub/Sub są tworzone automatycznie. Interfejs wiersza poleceń Firebase wyświetli nazwę tematu. Zadanie i temat możesz wyświetlić w konsoli Google Cloud. Temat jest nazwany zgodnie z tą konwencją:

firebase-scheduled-function_name-region

Przykład:

firebase-scheduled-scheduledFunctionCrontab-us-east1.