Bezpłatny hosting bota Telegram na Google Cloud Platform

Dlaczego GCP?

Podczas pisania botów do Telegrama natrafiłem na pytanie, jak szybko i za darmo sprawić, aby bot działał nieprzerwanie. Opcje z Heroku i Pythonanywhere mają zbyt małe limity, jeśli masz więcej niż jednego bota. Dlatego postanowiłem skorzystać z GCP. Platforma oferuje bezpłatne 300$ na rok oraz ogromne zniżki przy korzystaniu z tych środków (do 94%).

Bezpłatny hosting bota Telegram na Google Cloud Platform

Jak umieścić swojego bota na serwerze?

Krok 1. Rejestracja w GCP

Przechodzimy na stronę GCP i klikamy Rozpocznij za darmo.
Bezpłatny hosting bota Telegram na Google Cloud Platform
Wprowadzamy swoje dane i kartę. Środki z karty nie będą pobierane, jeśli samodzielnie nie aktywujesz płatnej subskrypcji.

Bezpłatny hosting bota Telegram na Google Cloud Platform

Krok 2. Tworzenie maszyny wirtualnej

Po rejestracji znajdziesz się na stronie głównej usługi. Musisz wybrać zakładkę Compute Engine w sekcji Zasoby.
Bezpłatny hosting bota Telegram na Google Cloud Platform
Należy stworzyć nowy egzemplarz.

Bezpłatny hosting bota Telegram na Google Cloud Platform
Jeśli nie zamierzasz wdrażać bazy danych na maszynie wirtualnej, możesz wybrać g1-small, w przeciwnym razie polecam n1-standard.

Bezpłatny hosting bota Telegram na Google Cloud Platform
Należy również wybrać system operacyjny. Wybrałem Debian GNU/Linux 9 (stretch).

Bezpłatny hosting bota Telegram na Google Cloud Platform
Gotowe, maszyna wirtualna została stworzona. Jej standardowe uruchomienie zajmuje od 1 do 5 minut.

Krok 3. Konfiguracja maszyny wirtualnej

Możesz połączyć się przez SSH z własnego PC lub współdziałać przez platformę.
Aby to zrobić, kliknij na SSH.

Bezpłatny hosting bota Telegram na Google Cloud Platform
Otworzy się terminal Linux w nowym oknie.

Bezpłatny hosting bota Telegram na Google Cloud Platform
Teraz przejdźmy do konfiguracji. Najpierw wpisz polecenie:

sudo apt-get update

aby zaktualizować informacje o najnowszych wersjach pakietów.

Następnie wpisz:

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

Samego Pythona nie trzeba instalować, już jest.

Teraz musisz zainstalować wszystkie niezbędne biblioteki. Jest mały szczegół, wszystkie biblioteki muszą być instalowane podwójnie:

pip3 install 'name_of_package'

do użytku poprzez komendę python3, oraz

sudo pip3 install 'name_of_package'

dla systemd. To narzędzie pomoże Ci uruchomić bota i wznawiać go, jeśli się zatrzyma.
Najprostszym sposobem uruchamiania bota jest użycie python3, ale wyłączy się, gdy się odłączysz. Można użyć screen, ale wtedy bot nie będzie się sam wznawiał. Można także użyć crontab z kontrolą portu, ale ten sposób wydaje mi się trudniejszy niż systemd.

Krok 4. Wgrywanie bota na serwer

Są dwa sposoby wgrania twojego bota. Jeśli nie znasz Gita, możesz po prostu spakować bota do .tar i wgrać go na serwer:

Bezpłatny hosting bota Telegram na Google Cloud Platform
Następnie rozpakowujemy go poleceniem:

tar -xvf yourfile.tar

Teraz twój bot znajduje się w folderze o nazwie archiwum.

Drugi sposób przez Git. Myślę, że nie trzeba tłumaczyć, jak to zrobić osobom, które potrafią go używać.

Po zainstalowaniu go poleceniem:

sudo apt install git

Możesz sklonować go na swojej maszynie wirtualnej.

Następnie przechodzimy do konfiguracji systemd. W tym celu przechodzimy do jego katalogu:

cd /etc/systemd/system

I tworzymy plik bot.service:

sudo nano bot.service

Wpisujemy w otwartym oknie następujące:


[Unit]
Description=Telegram bot 'Nazwa bota'
After=syslog.target
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/home/nazwa twojego użytkownika/nazwa folderu, w którym leży bot
ExecStart=/usr/bin/python3 /home/nazwa twojego użytkownika/nazwa folderu, w którym leży bot/bot.py

RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Zamknij i zapisz plik. Zamykasz go za pomocą polecenia Ctrl+X.

Następnie wpisz polecenia jedno po drugim:

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

Jeśli wszystko będzie w porządku, zobaczysz mniej więcej to:

Bezpłatny hosting bota Telegram na Google Cloud Platform
To wszystko, teraz twój bot działa samodzielnie. Mam nadzieję, że mój artykuł pomoże Ci wdrożyć bota.

P.S.

1. Sprawdź swojego bota pod kątem błędów

Uruchom swojego bota i sprawdź jego działanie, zanim uruchomisz go przez systemd. W tym celu przejdź do folderu z botem i uruchom go przez python.

cd 
python3 bot.py

2. Dodaj do plików z skryptami py kodowanie

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

Wstaw na początku pliku.

3. Błędy w systemd

Jeśli sprawdziłeś bota pod kątem błędów i działał poprawnie, ale nie chce się uruchomić w systemd, możesz sprawdzić logi i zrozumieć, w czym tkwi błąd, przeglądając plik:

sudo nano /var/log/syslog

Możesz pobrać ten plik i przeglądać go na swoim komputerze w Notepad++.

4. Aktualizacja bota

Jeśli chcesz dodać lub przesłać nową wersję bota, wprowadź polecenie:

sudo systemctl stop bot

Wykonaj wszystkie niezbędne operacje. A następnie wprowadź następujące polecenia, aby ponownie go uruchomić:

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

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster