Warum GCP?
Bei der Entwicklung von Telegram-Bots stieß ich auf die Frage, 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 Sie mehr als einen Bot haben. Daher entschied ich mich für GCP. Die Plattform bietet kostenlos 300 $ für ein Jahr + enorme Rabatte bei der Nutzung dieser Mittel (bis zu 94%).

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

Geben Sie Ihre Daten und Kreditkarte ein. Geld von der Karte wird nicht abgebucht, es sei denn, Sie aktivieren ein kostenpflichtiges Abonnement.

Schritt 2. Erstellen einer virtuellen Maschine
Nach der Registrierung gelangen Sie auf die Hauptseite des Dienstes. Sie müssen im Abschnitt Ressourcen die Registerkarte Compute Engine auswählen.

Sie müssen eine neue Instanz erstellen.

Wenn Sie keine DB auf virtuellen Maschine, dann können Sie g1-small wählen, andernfalls empfehle ich n1-standard.

Sie müssen auch das Betriebssystem auswählen. Ich wählte Debian GNU/Linux 9 (stretch).

Fertig, die VM wurde erstellt. Die übliche Bereitstellung dauert zwischen 1 und 5 Minuten.
Schritt 3. Konfiguration der virtuellen Maschine
Sie können sich per SSH von Ihrem PC verbinden oder über die Plattform interagieren.
Dafür klicken Sie auf SSH.
![]()
Ein Linux-Terminal öffnet sich in einem neuen Fenster.

Jetzt gehen wir zur Konfiguration über. Zuerst geben wir den Befehl ein:
sudo apt-get updateum die Informationen über die neuesten Paketversionen zu aktualisieren.
Danach geben wir ein:
sudo apt-get install python3-setuptools
sudo apt-get install python3-pipPython selbst muss nicht installiert werden, es ist bereits vorhanden.
Nun müssen alle erforderlichen Bibliotheken installiert werden. Es gibt einen kleinen Punkt: 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 Tool hilft Ihnen, den Bot zu starten und ihn neu zu starten, falls er abstürzt.
Der einfachste Weg, den Bot über python3 auszuführen, funktioniert, aber er wird sich ausschalten, wenn Sie sich abmelden. Man kann screen verwenden, aber der Bot wird sich nicht selbst neu starten. Zudem könnte man crontab mit einer Portüberprüfung nutzen, aber ich denke, diese Variante ist komplizierter als systemd.
Schritt 4. Laden Sie den Bot auf den Server hoch.
Es gibt zwei Möglichkeiten, Ihren Bot hochzuladen. Wenn Sie mit Git nicht vertraut sind, können Sie den Bot einfach in einer .tar-Datei archivieren und auf den Server hochladen:

Danach entpacken wir ihn mit folgendem Befehl:
tar -xvf yourfile.tarJetzt ist Ihr Bot im Ordner mit dem Namen des Archivs gespeichert.
Die zweite Methode erfolgt über Git. Ich denke, es ist nicht nötig, Menschen, die es nutzen können, zu erklären, wie man das macht.
Nach der Installation durch das Team:
sudo apt install gitSie können es auf Ihre VM klonen.
Danach gehen wir zur Konfiguration von systemd. Dazu wechseln wir in sein Verzeichnis:
cd /etc/systemd/systemUnd erstellen die Datei bot.service:
sudo nano bot.serviceGeben Sie im sich öffnenden Fenster Folgendes ein:
[Unit]
Description=Telegram-Bot 'Name des Bots'
After=syslog.target
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/home/IhrBenutzername/NameDesOrdnersInDemDerBotLiegt
ExecStart=/usr/bin/python3 /home/IhrBenutzername/NameDesOrdnersInDemDerBotLiegt/bot.py
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
Schließen und speichern Sie die Datei. Zum Schließen verwenden Sie die Kombination 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 funktioniert Ihr Bot eigenstä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 Funktion, 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 Zeichencodierung hinzu
#!/usr/bin/env python
# -*- coding: utf-8 -*-
Am Anfang der Datei einfügen.
3. Fehler in systemd
Wenn Sie den Bot auf Fehler überprüft haben und er ordnungsgemäß funktionierte, aber nicht in systemd starten möchte, können Sie die Protokolle einsehen, um den Fehler zu identifizieren, indem Sie die Datei ansehen:
sudo nano /var/log/syslogSie können diese Datei herunterladen und auf Ihrem Computer mit Notepad++ ansehen.
4. Bot aktualisieren
Wenn Sie den Bot ändern oder eine neue Version hochladen möchten, geben Sie den Befehl ein:
sudo systemctl stop botFühren Sie alle nötigen Manipulationen durch. Geben Sie dann die folgenden Befehle ein, um ihn wieder zu starten:
sudo systemctl daemon-reload
sudo systemctl start bot
sudo systemctl status botQuelle: habr.com
