Brezplačno gostovanje Telegram bota na Google Cloud Platform

Zakaj GCP?

Ko sem pisal telegram bote, sem se soočil s vprašanjem, kako hitro in brezplačno zagotoviti neprekinjeno delovanje bota. Možnosti s Heroku in Pythonanywhere imajo prenizke omejitve, če imate več kot enega bota. Zato sem se odločil za GCP. Platforma ponuja 300 $ brezplačno za eno leto + ogromne popuste pri uporabi teh sredstev (do 94%).

Brezplačno gostovanje Telegram bota na Google Cloud Platform

Kako gostiti vašega bota?

Korak 1. Registracija na GCP

Pojdite na spletno stran GCP in kliknemo Začnite brezplačno.
Brezplačno gostovanje Telegram bota na Google Cloud Platform
Vnesite svoje podatke in kreditno kartico. Denar z kartice ne bo odtegnjen, razen če sami ne aktivirate plačljive naročnine.

Brezplačno gostovanje Telegram bota na Google Cloud Platform

Korak 2. Ustvarjanje virtualnega strežnika

Po registraciji boste na glavni strani storitve. Izbrati morate zavihek Compute Engine v razdelku Viri.
Brezplačno gostovanje Telegram bota na Google Cloud Platform
Ustvariti morate nov primer.

Brezplačno gostovanje Telegram bota na Google Cloud Platform
Če ne boste nameščali baze podatkov na virtualni napravi, lahko izberete g1-small, sicer priporočam n1-standard.

Brezplačno gostovanje Telegram bota na Google Cloud Platform
Izbrati morate tudi operacijski sistem. Izbral sem Debian GNU/Linux 9 (stretch).

Brezplačno gostovanje Telegram bota na Google Cloud Platform
Vse, VM je ustvarjena. Običajno njeno ustvarjanje traja od 1 do 5 minut.

Korak 3. Nastavitev virtualnega strežnika

Povežete se lahko prek SSH iz svojega računalnika ali pa interagirate prek platforme.
Za to kliknite na SSH.

Brezplačno gostovanje Telegram bota na Google Cloud Platform
Odprlo se vam bo Linux terminal v novem oknu.

Brezplačno gostovanje Telegram bota na Google Cloud Platform
Zdaj se lotimo nastavitve. Najprej vnesite ukaz:

sudo apt-get update

za posodobitev informacij o najnovejših različicah paketov.

Nato vnesite:

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

Sama knjižnica Python ni potrebna, že je prisotna.

Zdaj je treba namestiti vse potrebne knjižnice. Obstaja majhna posebnost, vse knjižnice je treba namestiti dvakrat:

pip3 install ‘ime_paketa’

za uporabo prek ukaza python3, in

sudo pip3 install ‘ime_paketa’

za systemd. To orodje vam bo pomagalo zagnati bota in ga znova pognati, če pade.
Najenostavnejši način za zagon bota je prek python3, a se bo izklopil, če se boste vi odklopili. Lahko uporabite screen, a bot se ne bo sam znova zagnal. Prav tako lahko uporabite crontab s preverjanjem porta, a se mi zdi, da je ta možnost bolj zapletena kot systemd.

Korak 4. Naložite bota na strežnik

Obstajata dva načina za prenos vašega bota. Če se ne razumete z Gitom, lahko bota preprosto arhivirate v .tar in ga naložite na strežnik:

Brezplačno gostovanje Telegram bota na Google Cloud Platform
Nato ga razpakiramo s ukazom:

tar -xvf yourfile.tar

Zdaj vaš bot shranjen v mapi z imenom arhiva.

Drugi način je preko Gita. Mislim, da ni potrebno razlagati, kako to narediti ljudem, ki ga znajo uporabljati.

Po namestitvi z ukazom:

sudo apt install git

Lahko ga klonirate na svojo VM.

Nato preidite k nastavitvi systemd. Zato gremo v njegovo imenik:

cd /etc/systemd/system

In ustvarimo datoteko bot.service:

sudo nano bot.service

Vpišite v odprto okno naslednje:


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

[Service]
Type=simple
User=root
WorkingDirectory=/home/ime vašega uporabnika/ime mape, kjer se nahaja bot
ExecStart=/usr/bin/python3 /home/ime vašega uporabnika/ime mape, kjer se nahaja bot/bot.py

RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Zaprite in shranite datoteko. Zapre se z ukazom Ctrl+X.

Nato vnesite ukaze zaporedno:

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

Če bo vse v redu, boste videli približno naslednje:

Brezplačno gostovanje Telegram bota na Google Cloud Platform
Vse, zdaj vaš bot deluje samostojno. Upam, da vam bo moj članek pomagal gostovati vašega bota.

P.S.

1. Preverite svojega bota na napake

Zaženite svojega bota in preverite njegovo delovanje, preden ga zaženete preko systemd. Zato preidite v mapo z botom in ga zaženite preko python.

cd 
python3 bot.py

2. Dodajte v datoteke s py-skripti kodiranje

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

Vstavite na začetek datoteke.

3. Napake v systemd

Če ste svojega bota preverili na napake in je normalno delal, vendar se noče zagnati v systemd, si lahko ogledate dnevnike in ugotovite, kje je napaka, tako da pregledate datoteko:

sudo nano /var/log/syslog

Lahko prenesete to datoteko in jo pregledate na svojem računalniku preko Notepad++.

4. Posodobitev bota

Če želite dodati ali naložiti novo različico bota, vnesite ukaz:

sudo systemctl stop bot

Opravite vse potrebne manipulacije. Nato vnesite naslednje ukaze, da ponovno zažene:

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

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster