Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Fonctions de planification

Si vous voulez des fonctions de calendrier pour exécuter à des moments précis, l' utilisation functions.pubsub.schedule().onRun() Cette méthode pratique crée un Pub / Sub sujet et utilise Nuage Scheduler aux événements de déclenchement sur ce sujet, assurant que vos pistes de fonction l'horaire souhaité.

Avant que tu commences

Pour utiliser cette solution dans votre projet Firebase, votre projet doit être sur le plan tarifaire Blaze. Si ce n'est pas déjà sur le plan Blaze, mettre à jour votre plan de tarification .

Bien que la facturation soit requise, vous pouvez vous attendre à ce que le coût global soit gérable, car chaque tâche Cloud Scheduler coûte 0,10 $ (USD) par mois, et il y a une allocation de trois tâches gratuites par compte Google. Utilisez le Blaze calculatrice de prix 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. Ceux-ci devraient déjà être activés pour la plupart des projets Firebase ; vous pouvez vérifier dans le Google Cloud Platform Console .

Écrire une fonction planifiée

Dans Cloud Functions for Firebase, la logique de planification réside dans le code de vos fonctions, sans exigence particulière de temps de déploiement. Pour créer une fonction planifiée, utilisez functions.pubsub.schedule('your schedule').onRun((context)) du functions.pubsub.schedule('your schedule').onRun((context)) . Par exemple, pour exécuter une fonction toutes les cinq minutes avec App Engine cron.yaml syntaxe, faire quelque chose comme ceci:

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

Les syntaxes Unix Crontab et App Engine sont prises en charge par Cloud Scheduler. Par exemple, pour utiliser Crontab afin de sélectionner un fuseau horaire spécifique dans lequel exécuter une fonction planifiée, procédez comme ceci :

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 à partir de la base de données de tz . Voir la référence Nuage 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 associé et le sujet pub/sub sont créés automatiquement. Le Firebase CLI fait écho le nom du sujet, et vous pouvez voir le travail et le sujet dans la console GCP . Le sujet est nommé selon la convention suivante :

firebase-scheduled- function_name - region

Par exemple:

firebase-scheduled-scheduledFunctionCrontab-us-east1.