HĂ©bergement gratuit de bots Telegram sur Google Cloud Platform

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, et

sudo 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


#!/usr/bin/env python
# -*- coding: utf-8 -*-

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

All Articles