Kostenloses Hosting eines Telegram-Bots auf Google Cloud Platform

Warum GCP?

Beim Schreiben von Telegram-Bots bin ich auf die Frage gestoßen, wie ich schnell und kostenlos sicherstellen kann, dass der Bot ständig läuft. Die Optionen mit Heroku und Pythonanywhere haben zu kleine Limits, wenn man mehr als einen Bot hat. Deshalb habe ich mich entschieden, GCP zu nutzen. Die Plattform bietet 300 $ kostenlos für ein Jahr sowie große Rabatte bei der Nutzung dieser Mittel (bis zu 94%).

Kostenloses Hosting eines Telegram-Bots auf Google Cloud Platform

Wie hoste ich meinen Bot?

Schritt 1. Registrierung bei GCP

Gehe zur Website GCP und klicken auf Jetzt kostenlos starten.
Kostenloses Hosting eines Telegram-Bots auf Google Cloud Platform
Geben Sie Ihre Daten und Ihre Karte ein. Das Geld von der Karte wird nicht abgebucht, wenn Sie das kostenpflichtige Abonnement nicht selbst aktivieren.

Kostenloses Hosting eines Telegram-Bots auf Google Cloud Platform

Schritt 2. Erstellen einer virtuellen Maschine

Nach der Registrierung befinden Sie sich auf der Hauptseite des Dienstes. Sie müssen im Bereich Ressourcen den Tab Compute Engine auswählen.
Kostenloses Hosting eines Telegram-Bots auf Google Cloud Platform
Sie müssen eine neue Instanz erstellen.

Kostenloses Hosting eines Telegram-Bots auf Google Cloud Platform
Wenn Sie keine Datenbank auf virtuellen Maschine, benötigen Sie g1-small, andernfalls empfehle ich n1-standart.

Kostenloses Hosting eines Telegram-Bots auf Google Cloud Platform
Sie müssen auch ein Betriebssystem auswählen. Ich habe Debian GNU/Linux 9 (stretch) gewählt.

Kostenloses Hosting eines Telegram-Bots auf Google Cloud Platform
Fertig, die VM wurde erstellt. Das übliche Deployment dauert 1 bis 5 Minuten.

Schritt 3. Konfiguration der virtuellen Maschine

Sie können sich von Ihrem PC per SSH verbinden oder über die Plattform interagieren.
Dazu klicken Sie auf SSH.

Kostenloses Hosting eines Telegram-Bots auf Google Cloud Platform
Ein Linux-Terminal öffnet sich in einem neuen Fenster.

Kostenloses Hosting eines Telegram-Bots auf Google Cloud Platform
Lassen Sie uns nun zur Konfiguration übergehen. Geben Sie zuerst den Befehl ein:

sudo apt-get update

um Informationen über die neuesten Versionen von Paketen zu aktualisieren.

Geben Sie dann ein:

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

Python selbst muss nicht installiert werden, es ist bereits vorhanden.

Jetzt müssen alle erforderlichen Bibliotheken installiert werden. Es gibt eine kleine Nuance, alle Bibliotheken müssen zweimal installiert werden:

pip3 install ‘name_of_package’

um sie über den Befehl python3 zu verwenden, und

sudo pip3 install ‘name_of_package’

für systemd. Dieses Dienstprogramm hilft Ihnen, den Bot zu starten und neu zu starten, falls er abstürzt.
Der einfachste Weg, den Bot über python3 auszuführen, besteht darin, dass er sich ausschaltet, wenn Sie sich abmelden. Man kann screen verwenden, aber der Bot wird nicht automatisch neu gestartet. Man kann auch crontab mit Portüberprüfung verwenden, aber ich finde diese Option schwieriger als systemd.

Schritt 4. Bot auf den Server hochladen

Es gibt zwei Möglichkeiten, Ihren Bot hochzuladen. Wenn Sie nicht mit Git vertraut sind, können Sie den Bot einfach als .tar archivieren und auf den Server hochladen:

Kostenloses Hosting eines Telegram-Bots auf Google Cloud Platform
Danach entpacken Sie es mit dem Befehl:

tar -xvf yourfile.tar

Jetzt befindet sich Ihr Bot im Ordner mit dem Namen des Archivs.

Die zweite Methode über Git. Ich denke, es ist nicht nötig, den Leuten zu erklären, wie man das macht, die wissen, wie man es benutzt.

Nach der Installation mit folgendem Befehl:

sudo apt install git

Sie können es auf Ihrer VM klonen.

Nachdem wir das gemacht haben, gehen wir zur Konfiguration von systemd über. Dafür wechseln wir in sein Verzeichnis:

cd /etc/systemd/system

Und wir erstellen die Datei bot.service:

sudo nano bot.service

Wir schreiben im sich öffnenden Fenster Folgendes:


[Unit]
Description=Telegram-Bot 'Bot-Name'
After=syslog.target
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/home/IhrenBenutzernamen/OrdnerInDemDerBotLiegt
ExecStart=/usr/bin/python3 /home/IhrenBenutzernamen/OrdnerInDemDerBotLiegt/bot.py

RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Schließen Sie die Datei und speichern Sie sie. Schließen erfolgt mit der Taste Ctrl+X.

Geben Sie danach die Befehle nacheinander ein:

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

Wenn alles gut läuft, sehen Sie etwa Folgendes:

Kostenloses Hosting eines Telegram-Bots auf Google Cloud Platform
Fertig, jetzt läuft Ihr Bot selbstständig. Ich hoffe, mein Artikel hilft Ihnen, Ihren Bot zu hosten.

P.S.

1. Überprüfen Sie Ihren Bot auf Fehler

Starten Sie Ihren Bot und überprüfen Sie seine Funktionsweise, bevor Sie ihn über systemd starten. Gehen Sie dazu in den Ordner mit dem Bot und starten Sie ihn über Python.

cd 
python3 bot.py

2. Fügen Sie in den Python-Skripten die Codierung hinzu

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

Fügen Sie am Anfang der Datei hinzu.

3. Fehler in systemd

Wenn Sie den Bot auf Fehler überprüft haben und er normal lief, aber nicht in systemd starten möchte, können Sie die Protokolle einsehen und den Fehler herausfinden, indem Sie die Datei ansehen:

sudo nano /var/log/syslog

Sie können diese Datei herunterladen und auf Ihrem Computer mit Notepad++ ansehen.

4. Bot-Update

Wenn Sie den Bot erweitern oder eine neue Version hochladen möchten, geben Sie den Befehl ein:

sudo systemctl stop bot

Führen Sie alle erforderlichen Manipulationen durch. Geben Sie danach die folgenden Befehle ein, damit er wieder funktioniert:

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

Quelle: habr.com

60GB SSD 8Gb DDR4