Bezplatný hosting Telegram bota na Google Cloud Platform

Proč GCP?

Při psaní telegramových botů jsem se setkal s otázkou, jak rychle a zdarma zajistit, aby bot běžel nepřetržitě. Možnosti s Heroku a Pythonanywhere mají příliš malé limity, pokud máte více než jednoho bota. Proto jsem se rozhodl využít GCP. Platforma nabízí zdarma 300 $ na rok + obrovské slevy při využívání těchto prostředků (až 94 %).

Bezplatný hosting Telegram bota na Google Cloud Platform

Jak hostovat vašeho bota?

Krok 1. Registrace na GCP

Přejdeme na stránku GCP a klikneme na Začít zdarma.
Bezplatný hosting Telegram bota na Google Cloud Platform
Zadáme své údaje a kartu. Peníze z karty nebudou strženy, pokud si sami neaktivujete placené předplatné.

Bezplatný hosting Telegram bota na Google Cloud Platform

Krok 2. Vytvoření virtuálního stroje

Po registraci se ocitnete na hlavní stránce služby. Musíte vybrat v sekci Zdroje záložku Compute Engine.
Bezplatný hosting Telegram bota na Google Cloud Platform
Je nutné vytvořit nový instance.

Bezplatný hosting Telegram bota na Google Cloud Platform
Pokud nebudete nasazovat DB na virtuálním stroji, můžete vzít g1-small, jinak doporučuji n1-standard.

Bezplatný hosting Telegram bota na Google Cloud Platform
Také bude nutné vybrat OS. Zvolil jsem Debian GNU/Linux 9 (stretch).

Bezplatný hosting Telegram bota na Google Cloud Platform
A je to, VM byla vytvořena. Její standardní nasazení trvá od 1 do 5 minut.

Krok 3. Nastavení virtuálního stroje

Můžete se připojit přes SSH ze svého PC nebo interagovat prostřednictvím platformy.
Pro to klikněte na SSH.

Bezplatný hosting Telegram bota na Google Cloud Platform
Otevře se vám terminál Linuxu v novém okně.

Bezplatný hosting Telegram bota na Google Cloud Platform
Nyní přejdeme k nastavení. Nejprve zadejte příkaz:

sudo apt-get update

pro aktualizaci informací o nejnovějších verzích balíčků.

Poté zadejte:

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

Python instalovat nemusíte, již je přítomen.

Nyní je nutné nainstalovat všechny potřebné knihovny. Je zde menší nuance, všechny knihovny je potřeba instalovat dvakrát:

pip3 install ‘name_of_package’

pro použití přes příkaz python3, a

sudo pip3 install ‘name_of_package’

pro systemd. Tato utilita vám pomůže spustit bota a restartovat ho, pokud spadne.
Nejjednodušší způsob, jak spustit bota přes python3, ale vypne se, pokud se odpojíte. Můžete použít screen, ale bot se nebude sám restartovat. Také můžete použít crontab s kontrolou portu, ale tento způsob se mi zdá složitější než systemd.

Krok 4. Nahráváme bota na server

Existují dva způsoby, jak nahrát vašeho bota. Pokud nemáte vztah s Gitem, můžete jednoduše zabalit bota do .tar a nahrát ho na server:

Bezplatný hosting Telegram bota na Google Cloud Platform
Poté ho rozbalíme příkazem:

tar -xvf yourfile.tar

Nyní váš bot je uložen ve složce s názvem archivu.

Druhý způsob je přes Git. Myslím, že není třeba vysvětlovat, jak to udělat lidem, kteří ho umí používat.

Po instalaci jeho příkazem:

sudo apt install git

Můžete si ho naklonovat na VM.

Poté přejdeme k nastavení systemd. Za tímto účelem přejdeme do jeho adresáře:

cd /etc/systemd/system

A vytvoříme soubor bot.service:

sudo nano bot.service

Do otevřeného okna napište následující:


[Unit]
Description=Telegram bot 'Název bota'
After=syslog.target
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/home/název vašeho uživatele/název složky, ve které leží bot
ExecStart=/usr/bin/python3 /home/název vašeho uživatele/název složky, ve které leží bot/bot.py

RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Zavřete a uložte soubor. Zavře se pomocí příkazu Ctrl+X.

Poté zadejte příkazy postupně:

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

Pokud vše půjde dobře, uvidíte přibližně následující:

Bezplatný hosting Telegram bota na Google Cloud Platform
Všechno, nyní váš bot pracuje samostatně. Doufám, že vám můj článek pomůže hostit vašeho bota.

P.S.

1. Zkontrolujte vašeho bota na chyby

Spusťte vašeho bota a zkontrolujte jeho funkci, než ho spustíte přes systemd. Za tímto účelem přejděte do složky s botem a spusťte ho přes python.

cd 
python3 bot.py

2. Přidejte do souborů s py-skripty kódování

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

Vložte na začátek souboru.

3. Chyby v systemd

Pokud jste bota zkontrolovali na chyby a normálně fungoval, ale nechce se spustit v systemd, můžete se podívat na logy a pochopit, v čem je chyba, pohledem na soubor:

sudo nano /var/log/syslog

Můžete si tento soubor stáhnout a prohlédnout ho na svém počítači přes Notepad++.

4. Aktualizace bota

Pokud chcete doplnit nebo nahrát novou verzi bota, zadejte příkaz:

sudo systemctl stop bot

Proveďte všechny potřebné manipulace. A pak zadejte následující příkazy, aby znovu začal pracovat:

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

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster