Kostenloses Hosting für Telegram-Bots auf der Google Cloud Platform

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

Kostenloses Hosting für Telegram-Bots auf der Google Cloud Platform

Wie hoste ich meinen Bot?

Schritt 1. Registrierung bei GCP

Gehe auf die Website GCP und klicken auf Jetzt kostenlos starten.
Kostenloses Hosting für Telegram-Bots auf der Google Cloud Platform
Geben Sie Ihre Daten und Kreditkarte ein. Geld von der Karte wird nicht abgebucht, es sei denn, Sie aktivieren ein kostenpflichtiges Abonnement.

Kostenloses Hosting für Telegram-Bots auf der Google Cloud Platform

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.
Kostenloses Hosting für Telegram-Bots auf der Google Cloud Platform
Sie müssen eine neue Instanz erstellen.

Kostenloses Hosting für Telegram-Bots auf der Google Cloud Platform
Wenn Sie keine DB auf virtuellen Maschine, dann können Sie g1-small wählen, andernfalls empfehle ich n1-standard.

Kostenloses Hosting für Telegram-Bots auf der Google Cloud Platform
Sie müssen auch das Betriebssystem auswählen. Ich wählte Debian GNU/Linux 9 (stretch).

Kostenloses Hosting für Telegram-Bots auf der Google Cloud Platform
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.

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

Kostenloses Hosting für Telegram-Bots auf der Google Cloud Platform
Jetzt gehen wir zur Konfiguration über. Zuerst geben wir den Befehl ein:

sudo apt-get update

um die Informationen über die neuesten Paketversionen zu aktualisieren.

Danach geben wir ein:

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

Python 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:

Kostenloses Hosting für Telegram-Bots auf der Google Cloud Platform
Danach entpacken wir ihn mit folgendem Befehl:

tar -xvf yourfile.tar

Jetzt 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 git

Sie können es auf Ihre VM klonen.

Danach gehen wir zur Konfiguration von systemd. Dazu wechseln wir in sein Verzeichnis:

cd /etc/systemd/system

Und erstellen die Datei bot.service:

sudo nano bot.service

Geben 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:

Kostenloses Hosting für Telegram-Bots auf der Google Cloud Platform
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.py

2. 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/syslog

Sie 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 bot

Fü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 bot

Quelle: habr.com

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster