Google is committed to advancing racial equity for Black communities. See how.
Cette page a été traduite par l'API Cloud Translation.
Switch to English

Fonctions de planification

Si vous souhaitez planifier l'exécution de fonctions à des heures spécifiées, utilisez functions.pubsub.schedule().onRun() Cette méthode pratique crée un sujet Google Cloud Pub / Sub et utilise Google Cloud Scheduler pour déclencher des événements sur ce sujet, garantissant ainsi que votre La fonction s'exécute selon le programme souhaité.

Avant que tu commences

Pour utiliser cette solution dans votre projet Firebase, vous devez être sur le plan de facturation Blaze. Si vous n'êtes pas déjà sur Blaze, mettez à jour votre compte .

Bien que la facturation soit obligatoire, vous pouvez vous attendre à ce que le coût global soit gérable, car chaque tâche Cloud Scheduler coûte 0,10 USD (USD) par mois, et il y a une allocation de trois tâches gratuites par compte Google. Utilisez le calculateur de prix Blaze pour générer une estimation des coûts en fonction de votre utilisation prévue.

Les API Google Cloud Pub / Sub et Cloud Scheduler doivent être activées pour votre projet. Ceux-ci devraient déjà être activés pour la plupart des projets Firebase; vous pouvez vérifier dans la console Google Cloud Platform .

Écrire une fonction programmée

Dans Cloud Functions pour Firebase, la logique de planification réside dans le code de vos fonctions, sans exigences particulières en matière de temps de déploiement. Pour créer une fonction planifiée, utilisez functions.pubsub.schedule('your schedule').onRun((context)) . Par exemple, pour exécuter une fonction toutes les cinq minutes avec la syntaxe AppEngine cron.yaml , procédez comme suit :

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

La syntaxe Unix Crontab et AppEngine est prise en charge par Google Cloud Scheduler. Par exemple, pour utiliser Crontab pour sélectionner un fuseau horaire spécifique dans lequel exécuter une fonction planifiée, procédez comme suit:

 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;
});
 

La valeur de timeZone doit être un nom de fuseau horaire de la base de données tz . Consultez la référence Cloud Scheduler pour plus d'informations sur les propriétés prises en charge.

Déployer une fonction planifiée

Lorsque vous déployez une fonction planifiée, le travail du planificateur et la rubrique pub / sous associés sont créés automatiquement. L'interface de ligne de commande Firebase reprend le nom du sujet et vous pouvez afficher la tâche et le sujet dans la console GCP . Le sujet est nommé selon la convention suivante:

firebase-scheduled- function_name - region

Par exemple:

firebase-planifié-planifiéFonctionCrontab-us-east1.