Hébergement gratuit de Telegram Bot sur Google Cloud Platform

Pourquoi GCP ?

Lors de la rédaction de télégrammes pour les bots, je me suis posé la question de savoir comment faire fonctionner rapidement et gratuitement le bot tout le temps. Les options Heroku et Pythonanywhere sont bien trop basses si vous avez plus d'un bot. J'ai donc décidé d'utiliser GCP. La plate-forme offre 300 $ pendant un an gratuitement + d'énormes réductions lors de l'utilisation de ces fonds (jusqu'à 94 %).

Hébergement gratuit de Telegram Bot sur Google Cloud Platform

Comment héberger votre bot ?

Étape 1 : Inscrivez-vous à GCP

Aller sur le site GCP et appuyez sur Commencez gratuitement.
Hébergement gratuit de Telegram Bot sur Google Cloud Platform
Entrez vos coordonnées et votre carte. L'argent de la carte ne sera pas débité si vous n'activez pas vous-même l'abonnement payant.

Hébergement gratuit de Telegram Bot sur Google Cloud Platform

Étape 2. Créer une machine virtuelle

Après l'inscription, vous vous retrouverez sur la page principale du service. Vous devez sélectionner l'onglet Compute Engine dans la section Ressources.
Hébergement gratuit de Telegram Bot sur Google Cloud Platform
Vous devez créer une nouvelle instance.

Hébergement gratuit de Telegram Bot sur Google Cloud Platform
Si vous ne comptez pas déployer la base de données sur machine virtuelle, alors vous pouvez prendre g1-small, sinon je recommande n1-standard.

Hébergement gratuit de Telegram Bot sur Google Cloud Platform
Vous devrez également sélectionner un système d'exploitation. J'ai choisi Debian GNU/Linux 9 (stretch).

Hébergement gratuit de Telegram Bot sur Google Cloud Platform
Ça y est, la VM est créée. Son déploiement habituel prend de 1 à 5 minutes.

Étape 3 : Configurer la machine virtuelle

Vous pouvez vous connecter via SSH depuis votre PC ou interagir via la plateforme.
Pour cela, cliquez sur SSH.

Hébergement gratuit de Telegram Bot sur Google Cloud Platform
Cela ouvrira un terminal Linux dans une nouvelle fenêtre.

Hébergement gratuit de Telegram Bot sur Google Cloud Platform
Passons maintenant à la configuration. Entrez d'abord la commande :

sudo apt-get update

pour mettre à jour les informations sur les dernières versions de package.

Après nous entrons :

sudo apt-get install python3-setuptools
sudo apt-get install python3-pip

Python lui-même n'a pas besoin d'être installé, il est déjà là.

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 à démarrer le bot et à le redémarrer s'il plante.
Le moyen le plus simple d'exécuter le bot est via python3, mais il s'arrêtera si vous vous déconnectez. Vous pouvez utiliser screen, mais le bot ne redémarrera pas de lui-même. Vous pouvez également utiliser crontab avec un contrôle de port, mais je pense que cette option est plus compliquée que systemd.

Étape 4. Téléchargez le bot sur le serveur

Il existe deux façons de télécharger votre bot. Si vous n'êtes pas compatible avec Git, vous pouvez simplement compresser le bot en .tar et le télécharger sur le serveur :

Hébergement gratuit de Telegram Bot sur Google Cloud Platform
Après cela, décompressez-le avec la commande :

tar -xvf yourfile.tar

Maintenant, votre bot est stocké dans un dossier portant le nom de l'archive.

La deuxième façon est via Git. Je pense que ce n'est pas la peine d'expliquer comment faire à des gens qui savent s'en servir.

Après l'avoir installé avec la commande :

sudo apt install git

Vous pouvez le cloner sur votre VM.

Après cela, nous passons à la configuration de systemd. Pour cela, rendez-vous dans son répertoire :

cd /etc/systemd/system

Et créez un fichier bot.service :

sudo nano bot.service

Entrez ce qui suit 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. Fermé avec 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 :

Hébergement gratuit de Telegram Bot sur Google Cloud Platform
Tout, maintenant votre bot fonctionne indépendamment. J'espère que mon article vous aidera à héberger votre bot.

PS

1.Vérifiez les erreurs de votre bot

Démarrez votre bot et testez-le avant de l'exécuter via systemd. Pour ce faire, accédez au dossier contenant le bot et parcourez python.

cd <папка вашего бота>
python3 bot.py

2. Ajouter un encodage aux fichiers avec des scripts py

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

Insérer au début du fichier.

3. Bogues dans systemd

Si vous avez vérifié les erreurs du bot et qu'il a bien fonctionné, mais qu'il ne veut pas s'exécuter dans systemd, vous pouvez consulter les journaux et comprendre quelle est l'erreur en affichant le fichier :

sudo nano /var/log/syslog

Vous pouvez télécharger ce fichier et le visualiser sur votre ordinateur avec Notepad++.

4. Mise à jour du robot

Si vous souhaitez ajouter ou télécharger une nouvelle version du bot, saisissez la commande :

sudo systemctl stop bot

Voir toutes les manipulations nécessaires. Et puis entrez les commandes suivantes pour le faire fonctionner à nouveau :

sudo systemctl daemon-reload
sudo systemctl start bot
sudo systemctl status bot

Source: habr.com

Ajouter un commentaire