Python >> Tutoriel Python >  >> Python

Comment programmer votre script Python gratuitement sur Heroku

Salut les Finxters !

Dans mon dernier article, je vous ai montré comment héberger votre application Web Streamlit/Python dans le cloud sur Heroku.

Maintenant, vous vous êtes peut-être dit, c'est très bien, mais j'ai besoin que mon script (pas nécessairement une application Web, soit dit en passant) s'exécute deux fois par semaine pour charger ces nouvelles données au travail, ou pour envoyer un e-mail à ces clients tous les soirs à 3 heures du matin, heure européenne, ou peut-être comme passe-temps, vous aimeriez recevoir dans votre boîte e-mail ces données de football fraîchement récupérées du jour au lendemain ?

Si oui, continuez à lire !

S'il existe de nombreuses plateformes permettant de le faire à partir de 0€/mois (AWS, Google, Python Anywhere, cron, par exemple), nous nous en tiendrons à Heroku dans ce tutoriel, pour être cohérent avec mon article précédent.

Cet article suppose que vous avez :

  • connaissance de base de la ligne de commande Linux
  • lire mon article précédent sur l'envoi de code Python sur Heroku (recommandé)
  • la CLI Heroku installée
  • notions de base sur Git
  • un compte Heroku (gratuit) (n'oubliez pas de configurer votre adresse e-mail)
  • notions de base de Python

Planifier pour aujourd'hui :

Préparez votre script Python

Dans ce didacticiel, j'ai besoin d'un script dans lequel le résultat est visible afin que vous puissiez réellement visualiser la sortie, alors j'ai décidé de… attendez… d'envoyer un e-mail avec un agenda planifié, car cela fournira un moyen très visuel de vérifier les résultats et leur timing.

Alors j'y suis allé, créant le dossier et commençant à le remplir avec les fichiers nécessaires :

Ensuite, scriptez cet extrait :

Maintenant, ajoutez le credentials.json et token.json afin que le script puisse accéder au compte Gmail. (Besoin d'un rappel ? => Voir ici) :

Pour rappel :

  • utiliser un compte de messagerie jouet si c'est pour un passe-temps
  • ne poussez pas des fichiers aussi sensibles que credentials.json aux pensions publiques. (Au fait, il y a cette super startup, Gitguardian, dont le travail consiste à détecter de tels risques et à alerter en conséquence)

Poussez-le sur Heroku

Maintenant, vous devez être habitué, alors j'y vais :

Remarquez que je n'ai spécifié aucun nom d'application (heroku create), donc Heroku trouvera un nom disponible au hasard. C'est parce que cela n'a pas vraiment d'importance car il ne s'agit pas d'un site Web, mais seulement d'un processus planifié exécuté en arrière-plan, donc personne ne verra son nom sauf moi (et les collaborateurs potentiels).

Quel beau nom quand même ! :Escarpement énigmatique !

Que se passe-t-il si je clique sur l'URL fournie avec le projet ?

Oups ! Ai-je tout gâché ?

Non! C'est normal, Heroku me fournit une URL mais je ne fais pas d'application Web cette fois.

Déclencher un planificateur

Maintenant que notre script est dans le cloud, rien ne se passera tant que nous n'aurons pas sélectionné et déclenché un planificateur. Nous le ferons à la manière de l'interface graphique.

Pour ce faire, rendez-vous sur la page de votre application, cliquez sur l'onglet Ressources et commencez à taper "planifier" dans la barre des modules complémentaires et vous verrez apparaître plusieurs planificateurs :

En fonction de votre objectif et de votre budget, vous pouvez choisir l'un des éléments ci-dessus.

J'opterai pour le plan gratuit du planificateur avancé pour ce didacticiel.

Sélectionnez simplement celui qui correspond le mieux à vos besoins et cliquez sur Soumettre le formulaire de commande.

Cliquez ensuite sur le planificateur pour commencer à le configurer, et vous verrez un bouton violet "Créer le premier déclencheur", cliquez dessus.

À ce stade, vous pourriez obtenir une fenêtre contextuelle vous demandant de renseigner vos coordonnées bancaires avant de pouvoir continuer. Si vous optez ensuite pour un forfait gratuit, vous pouvez le faire sans craindre d'être facturé.

Vous serez invité à saisir un nom pour le déclencheur, la commande à exécuter.

La commande est celle que vous taperiez dans votre shell pour lancer votre programme Python (dans ce projet, la commande à taper est donc :python scheduled_script.py ).

Sélectionnez ensuite votre fuseau horaire et s'il s'agit d'un événement ponctuel ou récurrent.

Dans mon cas et pour ce tutoriel, j'ai sélectionné récurrent toutes les minutes :

Enfin, vous pouvez surveiller votre add-on planificateur sur la page dédiée qui suit :

Profitez de votre automatisation !

Vous pouvez maintenant vous asseoir et vous détendre pendant que Python sur Heroku fait tout le travail nocturne pour vous !

Vous vous souvenez que j'ai écrit et poussé un programme qui m'envoie des e-mails toutes les minutes, avec l'heure dans le sujet de l'e-mail ?

Regardez les résultats :

Imaginez les possibilités infinies pour vos futurs programmes !

Attention cependant, je ne recommande pas d'utiliser un plan gratuit pour les projets sérieux, car la fiabilité pourrait ne pas être aux normes et votre dyno pourrait s'épuiser.

Veuillez également utiliser ce type de technologie de manière responsable.

C'est tout pour aujourd'hui, je suis sûr que vous pouvez maintenant l'essayer vous-même et créer de grandes choses.


Post précédent