Je cherche un moyen de planifier les fonctions de cloud pour Firebase ou, en d'autres termes, de les déclencher à une heure précise.
Mise à jour 2019-04-18
Il existe maintenant un moyen très simple de déployer du code planifié sur Cloud Functions via Firebase.
Vous pouvez soit utiliser une syntaxe de texte simple:
export scheduledFunctionPlainEnglish =
functions.pubsub.schedule('every 5 minutes').onRun((context) => {
console.log('This will be run every 5 minutes!');
})
Ou le format de table cron plus flexible:
export scheduledFunctionCrontab =
functions.pubsub.schedule('5 11 * * *').onRun((context) => {
console.log('This will be run every day at 11:05 AM UTC!');
});
Pour en savoir plus à ce sujet, voir:
Notez que votre projet doit être sur un plan Blaze pour que cela fonctionne, alors je laisse les options alternatives ci-dessous pour référence.
Réponse originale ci-dessous ...
Il n'y a pas encore de déclencheur de type runat/cron intégré.
Pour le moment, la meilleure option consiste à utiliser un service externe pour déclencher une fonction HTTP périodiquement. Voir cet exemple dans le repo functions-samples pour plus d'informations. Ou utilisez le Google Cloud Scheduler récemment introduit pour déclencher des fonctions de cloud via PubSub ou HTTPS:
Je recommande également vivement de lire cet article sur le blog de Firebase: Comment planifier des tâches (Cron) avec des fonctions de cloud pour Firebase et cette vidéo: Fonctions de timing Cloud pour Firebase utilisant un déclencheur et un cron HTTP .
Ce dernier lien utilise cron-job.org pour déclencher des fonctions d'informatique en nuage et fonctionne pour les projets faisant l'objet d'un plan gratuit. Notez que cela permet à quiconque d'appeler votre fonction sans autorisation. Vous pouvez donc inclure un mécanisme de protection contre les abus dans le code lui-même.
Ce que vous pouvez faire, c'est créer une instance AppEngine déclenchée par le travail cron et émise vers PubSub. J'ai écrit un article de blog spécifiquement à ce sujet, vous voudrez peut-être jeter un coup d'oeil:
https://mhaligowski.github.io/blog/2017/05/25/scheduled-cloud-function-execution.html