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%).

Wie hoste ich meinen Bot?
Schritt 1. Registrierung bei GCP
Gehe zur Website und klicken auf Jetzt kostenlos starten.

Geben Sie Ihre Daten und Ihre Karte ein. Das Geld von der Karte wird nicht abgebucht, wenn Sie das kostenpflichtige Abonnement nicht selbst aktivieren.

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.

Sie müssen eine neue Instanz erstellen.

Wenn Sie keine Datenbank auf virtuellen Maschine, benötigen Sie g1-small, andernfalls empfehle ich n1-standart.

Sie müssen auch ein Betriebssystem auswählen. Ich habe Debian GNU/Linux 9 (stretch) gewählt.

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.
![]()
Ein Linux-Terminal öffnet sich in einem neuen Fenster.

Lassen Sie uns nun zur Konfiguration übergehen. Geben Sie zuerst den Befehl ein:
sudo apt-get updateum Informationen über die neuesten Versionen von Paketen zu aktualisieren.
Geben Sie dann ein:
sudo apt-get install python3-setuptools
sudo apt-get install python3-pipPython 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:

Danach entpacken Sie es mit dem Befehl:
tar -xvf yourfile.tarJetzt 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 gitSie 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/systemUnd wir erstellen die Datei bot.service:
sudo nano bot.serviceWir 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:

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.py2. 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/syslogSie 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 botFü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 botQuelle: habr.com
