Senpaga Telegram-Bot-Gastigado sur Google Cloud Platform

Kial GCP?

Skribante telegramojn por robotoj, mi renkontis la demandon kiel rapide kaj senpage igi la roboton funkcii la tutan tempon. La Heroku kaj Pythonanywhere-opcioj estas multe tro malaltaj se vi havas pli ol unu bot. Do mi decidis uzi GCP. La platformo provizas $ 300 por jaro senpage + grandegaj rabatoj kiam vi uzas ĉi tiujn financojn (ĝis 94%).

Senpaga Telegram-Bot-Gastigado sur Google Cloud Platform

Kiel gastigi vian bot?

Paŝo 1: Registru por GCP

Ni iru al la retejo GCP kaj alklaku Komencu senpage.
Senpaga Telegram-Bot-Gastigado sur Google Cloud Platform
Enigu viajn detalojn kaj karton. Mono de la karto ne estos ŝuldita se vi ne aktivigas la pagitan abonon mem.

Senpaga Telegram-Bot-Gastigado sur Google Cloud Platform

Paŝo 2. Krei virtualan maŝinon

Post registriĝo, vi trovos vin sur la ĉefpaĝo de la servo. Vi devas elekti la langeton Compute Engine en la sekcio Rimedoj.
Senpaga Telegram-Bot-Gastigado sur Google Cloud Platform
Vi devas krei novan petskribon.

Senpaga Telegram-Bot-Gastigado sur Google Cloud Platform
Se vi ne intencas deploji la datumbazon sur virtuala maŝino, tiam vi povas preni g1-malgrandan, alie mi rekomendas n1-norman.

Senpaga Telegram-Bot-Gastigado sur Google Cloud Platform
Vi ankaŭ devos elekti OS. Mi elektis Debian GNU/Linukso 9 (stretch).

Senpaga Telegram-Bot-Gastigado sur Google Cloud Platform
Jen ĝi, la VM estas kreita. Ĝia kutima deplojo daŭras de 1 ĝis 5 minutoj.

Paŝo 3: Agordu la virtualan maŝinon

Vi povas konekti per SSH de via komputilo aŭ interagi per la platformo.
Por fari tion, alklaku SSH.

Senpaga Telegram-Bot-Gastigado sur Google Cloud Platform
Ĉi tio malfermos Linuksan terminalon en nova fenestro.

Senpaga Telegram-Bot-Gastigado sur Google Cloud Platform
Nun ni transiru al la aranĝo. Unue enigu la komandon:

sudo apt-get update

por ĝisdatigi informojn pri la plej novaj pakaj versioj.

Post kiam ni eniras:

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

Python mem ne bezonas esti instalita, ĝi jam estas tie.

Nun vi devas instali ĉiujn necesajn bibliotekojn. Estas malgranda nuanco, ĉiuj bibliotekoj devas esti instalitaj dufoje:

pip3 install ‘name_of_package’

por uzo per python3 komando, kaj

sudo pip3 install ‘name_of_package’

por systemd. Ĉi tiu ilo helpos vin komenci la roboton kaj rekomenci ĝin se ĝi kraŝas.
La plej facila maniero funkciigi la roboton estas tra python3, sed ĝi malŝaltos se vi malkonektos. Vi povas uzi ekranon, sed la roboto ne rekomencos mem. Vi ankaŭ povas uzi crontab kun portkontrolo, sed mi pensas, ke ĉi tiu opcio estas pli komplika ol systemd.

Paŝo 4. Alŝutu la bot al la servilo

Estas du manieroj alŝuti vian bot. Se vi ne estas amika Git, vi povas simple zipi la bot al .tar kaj alŝuti ĝin al la servilo:

Senpaga Telegram-Bot-Gastigado sur Google Cloud Platform
Post tio, malzimpu ĝin per la komando:

tar -xvf yourfile.tar

Nun via bot estas konservita en dosierujo kun la nomo de la arkivo.

La dua maniero estas per Git. Mi pensas, ke ne indas klarigi kiel fari ĝin al homoj, kiuj scipovas ĝin uzi.

Post instali ĝin per la komando:

sudo apt install git

Vi povas kloni ĝin al via VM.

Post tio, ni daŭrigas agordi systemd. Por fari tion, iru al ĝia dosierujo:

cd /etc/systemd/system

Kaj kreu bot.service-dosieron:

sudo nano bot.service

Enigu la jenon en la fenestro kiu malfermiĝas:


[Unit]
Description=Telegram bot 'Имя бота'
After=syslog.target
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/home/название вашего юзера/название папки в которой лежит бот
ExecStart=/usr/bin/python3 /home/название вашего юзера/название папки в которой лежит бот/bot.py

RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Fermu kaj konservu la dosieron. Fermite per Ctrl+X.

Post tio, enigu la komandojn laŭvice:

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

Se ĉio iras bone, vi vidos ion tian:

Senpaga Telegram-Bot-Gastigado sur Google Cloud Platform
Ĉio, nun via bot funkcias sendepende. Mi esperas, ke mia artikolo helpos vin gastigi vian bot.

PS

1.Kontrolu vian roboton pri eraroj

Komencu vian roboton kaj provu ĝin antaŭ ol ruli ĝin per systemd. Por fari tion, iru al la dosierujo kun la bot kaj kuru tra python.

cd <папка вашего бота>
python3 bot.py

2. Aldonu kodigon al dosieroj kun py-skriptoj

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

Enigu komence de la dosiero.

3. Cimoj en systemd

Se vi kontrolis la roboton por eraroj kaj ĝi funkciis bone, sed ĝi ne volas funkcii en systemd, tiam vi povas rigardi la protokolojn kaj kompreni kio estas la eraro rigardante la dosieron:

sudo nano /var/log/syslog

Vi povas elŝuti ĉi tiun dosieron kaj vidi ĝin en via komputilo per Notepad++.

4.Bot ĝisdatigo

Se vi volas aldoni aŭ alŝuti novan version de la bot, tiam enigu la komandon:

sudo systemctl stop bot

Vidu ĉiujn necesajn manipuladojn. Kaj poste enigu la sekvajn komandojn por ke ĝi funkcii denove:

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

fonto: www.habr.com

Aldoni komenton