Pourquoi GCP?
En écrivant des télégrammes aux bots, je suis tombé sur la question de savoir comment faire pour que le bot fonctionne rapidement et gratuitement en permanence. Les options avec Heroku et Pythonanywhere ont des limites trop petites si vous avez plus d'un bot. J'ai donc décidé d'utiliser GCP. La plateforme offre gratuitement 300 $ par an + d'énormes remises sur l'utilisation de ces fonds (jusqu'à 94%).Comment héberger votre bot?
Ătape 1. S'inscrire au GCP
AccĂ©dez au site Web GCP et cliquez sur Commencer gratuitement .Saisissez vos donnĂ©es et votre carte. L'argent de la carte ne sera pas dĂ©bitĂ© si vous n'activez pas vous-mĂȘme un abonnement payant.Ătape 2. CrĂ©ez une machine virtuelle
AprĂšs l'inscription, vous serez sur la page principale du service. Vous devez sĂ©lectionner l'onglet Compute Engine dans la section Ressources.Vous devez crĂ©er une nouvelle instance.Si vous ne dĂ©ploierez pas la base de donnĂ©es dans une machine virtuelle, vous pouvez prendre g1-small, sinon je conseille n1-standart.Vous devrez Ă©galement choisir un systĂšme d'exploitation. J'ai choisi Debian GNU / Linux 9 (stretch).Toute VM créée. Le dĂ©ploiement conventionnel prend 1 Ă 5 minutes.Ătape 3. Configurer la machine virtuelle
Vous pouvez vous connecter via SSH depuis votre PC ou interagir via la plateforme.Pour ce faire, cliquez sur SSH.Votre terminal Linux s'ouvrira dans une nouvelle fenĂȘtre.Passons maintenant Ă la configuration. Tout d'abord, entrez la commande:sudo apt-get update
pour mettre à jour les informations sur les derniÚres versions du package.AprÚs avoir entré:sudo apt-get install python3-setuptools
sudo apt-get install python3-pip
Python lui-mĂȘme n'a pas besoin d'ĂȘtre installĂ©, il existe dĂ©jĂ .Vous devez maintenant installer toutes les bibliothĂšques nĂ©cessaires. Il y a une petite nuance, toutes les bibliothĂšques doivent ĂȘtre installĂ©es deux fois:pip3 install âname_of_packageâ
pour une utilisation via la commande python3, etsudo pip3 install âname_of_packageâ
pour systemd. Cet utilitaire vous aidera Ă lancer le bot et Ă le redĂ©marrer s'il se bloque.Le moyen le plus simple d'exĂ©cuter le bot via python3, mais il s'Ă©teindra si vous vous dĂ©connectez. Vous pouvez utiliser l'Ă©cran, mais le bot ne redĂ©marrera pas lui-mĂȘme. Vous pouvez Ă©galement utiliser crontab avec la vĂ©rification des ports, mais il me semble que cette option est plus compliquĂ©e que systemd.Ătape 4. Remplissez le bot sur le serveur
Il existe deux façons de remplir votre bot. Si vous n'ĂȘtes pas ami avec Git, vous pouvez simplement archiver le bot dans .tar et le tĂ©lĂ©charger sur le serveur:AprĂšs cela, dĂ©compressez-le avec la commande:tar -xvf yourfile.tar
Votre bot est maintenant stocké dans un dossier avec le nom de l'archive.La deuxiÚme façon est via Git. Je pense que cela ne vaut pas la peine d'expliquer comment faire cela à des gens qui savent comment l'utiliser.AprÚs l'avoir installé avec la commande:sudo apt install git
Vous pouvez le cloner sur votre machine virtuelle.AprÚs cela, passons à la configuration de systemd. Pour ce faire, accédez à son répertoire:cd /etc/systemd/system
Et créez le fichier bot.service:sudo nano bot.service
Entrez les informations suivantes dans la fenĂȘtre qui s'ouvre:
[Unit]
Description=Telegram bot ' '
After=syslog.target
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/home/ /
ExecStart=/usr/bin/python3 /home/ / /bot.py
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
Fermez et enregistrez le fichier. Se ferme avec la commande Ctrl + X.AprĂšs cela, entrez les commandes Ă tour de rĂŽle:sudo systemctl daemon-reload
sudo systemctl enable bot
sudo systemctl start bot
sudo systemctl status bot
Si tout se passe bien, vous verrez quelque chose comme ceci:Ăa y est, maintenant votre bot fonctionne indĂ©pendamment. J'espĂšre que mon article vous aidera Ă hĂ©berger votre bot.PS
1. Vérifiez votre bot pour les erreurs
Lancez votre bot et testez son fonctionnement avant de le lancer via systemd. Pour ce faire, accédez au dossier contenant le bot et exécutez python.cd < >
python3 bot.py
2. Ajoutez de l'encodage aux fichiers avec des scripts py
Insérez au début du fichier.3.Erreurs dans systemd
Si vous avez vérifié les erreurs du bot et que cela a bien fonctionné, mais qu'il ne veut pas démarrer dans systemd, vous pouvez consulter les journaux et comprendre ce qu'est l'erreur en consultant le fichier:sudo nano /var/log/syslog
Vous pouvez télécharger ce fichier et l'afficher sur votre ordinateur via Notepad ++.Mise à jour 4.Bot
Si vous souhaitez ajouter ou télécharger une nouvelle version du bot, entrez la commande:sudo systemctl stop bot
Fournissez toutes les manipulations nécessaires. Et puis entrez les commandes suivantes pour que cela fonctionne à nouveau:sudo systemctl daemon-reload
sudo systemctl start bot
sudo systemctl status bot