Bezplatný hosting Telegram bota na Google Cloud Platform

Prečo GCP?

Pri písaní telegramových botov som sa stretol s otázkou, ako rýchlo a bezplatne zabezpečiť, aby bot fungoval nepretržite. Možnosti s Heroku a Pythonanywhere majú príliš malé limity, ak máte viac ako jedného bota. Preto som sa rozhodol využiť GCP. Platforma poskytuje 300$ na rok zadarmo + obrovské zľavy pri využívaní týchto prostriedkov (až 94%).

Bezplatný hosting Telegram bota na Google Cloud Platform

Ako hostiť vášho bota?

Krok 1. Registrácia na GCP

Prejdeme na stránku GCP a klikneme na Začnite zadarmo.
Bezplatný hosting Telegram bota na Google Cloud Platform
Zadáme svoje údaje a kartu. Peniaze z karty nebudú strhnuté, pokiaľ sami neaktivujete platené predplatné.

Bezplatný hosting Telegram bota na Google Cloud Platform

Krok 2. Vytvorenie virtuálneho stroja

Po registrácii sa ocitnete na hlavnej stránke služby. Musíte vybrať v sekcii Zdroje kartu Compute Engine.
Bezplatný hosting Telegram bota na Google Cloud Platform
Je potrebné vytvoriť nový экземпляr.

Bezplatný hosting Telegram bota na Google Cloud Platform
Ak neplánujete nasadiť DB na virtuálnom stroji, môžete vziať g1-small, inak odporúčam n1-standard.

Bezplatný hosting Telegram bota na Google Cloud Platform
Bude potrebné vybrať aj operačný systém. Vybral som Debian GNU/Linux 9 (stretch).

Bezplatný hosting Telegram bota na Google Cloud Platform
Hotovo, VM je vytvorená. Bežná doba nasadenia trvá od 1 do 5 minút.

Krok 3. Nastavenie virtuálneho stroja

Môžete sa pripojiť cez SSH zo svojho PC alebo sa interagovať cez platformu.
Na to kliknite na SSH.

Bezplatný hosting Telegram bota na Google Cloud Platform
Otvorí sa vám terminál Linux v novom okne.

Bezplatný hosting Telegram bota na Google Cloud Platform
Teraz prejdeme na nastavenie. Najprv zadajte príkaz:

sudo apt-get update

na aktualizáciu informácií o najnovších verziách balíkov.

Potom zadáme:

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

Python inštalovať netreba, už je nainštalovaný.

Teraz je potrebné nainštalovať všetky potrebné knižnice. Je tu malý nuans, všetky knižnice je potrebné inštalovať dvakrát:

pip3 install ‘name_of_package’

na použitie cez príkaz python3, a

sudo pip3 install ‘name_of_package’

pre systemd. Táto utilita vám pomôže spustiť bota a reštartovať ho, ak padne.
Najjednoduchší spôsob spustiť bota cez python3, ale vypne sa, ak sa odpojíte. Môžete použiť screen, ale bot sa nebude sám reštartovať. Môžete tiež použiť crontab s kontrolou portu, ale tento variant sa mi zdá zložitejší ako systemd.

Krok 4. Nahrajeme bota na server

Existujú dva spôsoby, ako nahrať vášho bota. Ak nemáte skúsenosti s Gitom, môžete jednoducho zarchivovať bota do .tar a nahrať ho na server:

Bezplatný hosting Telegram bota na Google Cloud Platform
Potom ho rozarchivujeme príkazom:

tar -xvf yourfile.tar

Teraz váš bot je uložený v priečinku s názvom archívu.

Druhý spôsob cez Git. Nemyslím si, že by som mal vysvetľovať, ako to urobiť ľuďom, ktorí ho vedia použiť.

Po nainštalovaní jeho príkazom:

sudo apt install git

Môžete ho skopírovať na svoju VM.

Potom prejdite k nastaveniu systemd. Na to prejdite do jeho adresára:

cd /etc/systemd/system

A vytvorte súbor bot.service:

sudo nano bot.service

Zapíšte do otvoreného okna nasledujúce:


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

[Service]
Type=simple
User=root
WorkingDirectory=/home/názov vášho používateľa/názov zložky, v ktorej sa nachádza bot
ExecStart=/usr/bin/python3 /home/názov vášho používateľa/názov zložky, v ktorej sa nachádza bot/bot.py

RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Zatvorte a uložte súbor. Zatvára sa pomocou príkazu Ctrl+X.

Potom zadajte príkazy po jednom:

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

Ak všetko pôjde dobre, uvidíte približne nasledovné:

Bezplatný hosting Telegram bota na Google Cloud Platform
Všetko, teraz váš bot funguje samostatne. Dúfam, že môj článok vám pomôže hostiť vášho bota.

P.S.

1. Skontrolujte svojho bota na chyby

Spustite svojho bota a skontrolujte jeho funkčnosť predtým, ako ho spustíte cez systemd. Na to prejdite do zložky s botom a spustite ho cez python.

cd 
python3 bot.py

2. Pridajte do súborov s py-skripty kódovanie

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

Vložte na začiatok súboru.

3. Chyby v systemd

Ak ste skontrolovali bota na chyby a normálne fungoval, ale nechce sa spustiť v systemd, môžte si pozrieť logy a pochopiť, v čom je chyba, prezeraním súboru:

sudo nano /var/log/syslog

Môžete si tento súbor stiahnuť a prezrieť na svojom počítači cez Notepad++.

4. Aktualizácia bota

Ak chcete doplniť alebo načítať novú verziu bota, zadajte príkaz:

sudo systemctl stop bot

Urobte všetky potrebné úpravy. A potom zadajte nasledujúce príkazy, aby znova začal fungovať:

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

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster