Fonctions de programmation


Si vous souhaitez planifier des fonctions pour qu'elles s'exécutent à des heures spécifiques, utilisez le gestionnaire onSchedule pour créer Sujet Pub/Sub qui utilise Cloud Scheduler pour déclencher des événements sur sur ce sujet.

Avant de commencer

Pour utiliser cette solution dans votre projet Firebase, vous devez disposer de la formule Blaze. Si ce n'est pas déjà fait, passer à un forfait supérieur.

Bien que la facturation soit obligatoire, vous pouvez vous attendre à ce que le coût global soit gérable, car chaque job Cloud Scheduler coûte 0,10 $par mois, et il existe une trois offres d'emploi par compte Google, sans frais. Utilisez le simulateur de coût Blaze pour générer une estimation des coûts en fonction de votre utilisation prévue.

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

Écrire une fonction planifiée

Dans Cloud Functions for Firebase, la logique de planification se trouve dans le code de vos fonctions. sans exigence particulière en termes de temps de déploiement. Pour créer une fonction planifiée, utiliser functions.pubsub.schedule('your schedule').onRun((context)). Par exemple, pour exécuter une fonction toutes les cinq minutes avec la syntaxe App Engine 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;
});

Unix Crontab et la syntaxe App Engine sont compatibles avec Cloud Scheduler. Par exemple, pour utiliser Crontab pour sélectionner 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 issu de base de données tz. Consultez le Documentation de référence sur Cloud Scheduler pour en savoir plus sur les propriétés acceptées.

Déployer une fonction programmée

Lorsque vous déployez une fonction planifiée, la tâche de planification associée et Pub/Sub sont créés automatiquement. La CLI Firebase renvoie le nom du sujet. Vous pouvez afficher la tâche et le sujet dans la console Google Cloud. Le sujet est nommé selon la convention suivante :

firebase-programmé-function_name-region

Exemple :

firebase-Scheduled-scheduleFunctionCrontab-us-east1.