Google is committed to advancing racial equity for Black communities. See how.
Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

Zaplanuj funkcje

Jeśli chcesz zaplanować uruchamianie funkcji w określonych godzinach, użyj functions.pubsub.schedule().onRun() Ta wygodna metoda tworzy temat Google Cloud Pub / Sub i używa Google Cloud Scheduler do wyzwalania zdarzeń na ten temat, zapewniając funkcja działa zgodnie z żądanym harmonogramem.

Zanim zaczniesz

Aby użyć tego rozwiązania w projekcie Firebase, musisz mieć abonament Blaze. Jeśli nie korzystasz jeszcze z Blaze, uaktualnij swoje konto .

Chociaż rozliczenie jest wymagane, możesz oczekiwać, że całkowity koszt będzie możliwy do zarządzania, ponieważ każde zadanie Cloud Scheduler kosztuje 0,10 USD (USD) miesięcznie, a na jedno konto Google przysługują trzy bezpłatne zadania. Skorzystaj z kalkulatora cen Blaze, aby wygenerować kosztorys na podstawie przewidywanego użycia.

W Twoim projekcie muszą być włączone interfejsy API Google Cloud 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 for 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ą AppEngine cron.yaml , wykonaj coś takiego:

 exports.scheduledFunction = functions.pubsub.schedule('every 5 minutes').onRun((context) => {
  console.log('This will be run every 5 minutes!');
  return null;
});
 

Składnia Unix Crontab i AppEngine jest obsługiwana przez Google Cloud Scheduler. Na przykład, aby użyć Crontab do wybrania określonej strefy czasowej, w której ma zostać uruchomiona zaplanowana funkcja, zrób 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ć nazwa strefy czasowej z bazy tz . Więcej informacji na temat obsługiwanych właściwości można znaleźć w dokumentacji Cloud Scheduler .

Wdróż zaplanowaną funkcję

Podczas wdrażania zaplanowanej funkcji powiązane zadanie harmonogramu i temat publikacji / podrzędny są tworzone automatycznie. Interfejs wiersza polecenia Firebase przypomina nazwę tematu, a zadanie i temat można wyświetlić w konsoli GCP . Temat został nazwany zgodnie z następującą konwencją:

Firebase-scheduled- function_name - region

Na przykład:

Firebase-Schedule-ScheduleFunctionCrontab-us-east1.