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%).

Kiel gastigi vian bot?
Paŝo 1: Registru por GCP
Ni iru al la retejo kaj alklaku Komencu senpage.

Enigu viajn detalojn kaj karton. Mono de la karto ne estos ŝuldita se vi ne aktivigas la pagitan abonon mem.

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.

Vi devas krei novan petskribon.

Se vi ne intencas deploji la datumbazon sur virtuala maŝino, tiam vi povas preni g1-malgrandan, alie mi rekomendas n1-norman.

Vi ankaŭ devos elekti OS. Mi elektis Debian GNU/Linukso 9 (stretch).

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.
![]()
Ĉi tio malfermos Linuksan terminalon en nova fenestro.

Nun ni transiru al la aranĝo. Unue enigu la komandon:
sudo apt-get updatepor ĝisdatigi informojn pri la plej novaj pakaj versioj.
Post kiam ni eniras:
sudo apt-get install python3-setuptools
sudo apt-get install python3-pipPython 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:

Post tio, malzimpu ĝin per la komando:
tar -xvf yourfile.tarNun 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 gitVi povas kloni ĝin al via VM.
Post tio, ni daŭrigas agordi systemd. Por fari tion, iru al ĝia dosierujo:
cd /etc/systemd/systemKaj kreu bot.service-dosieron:
sudo nano bot.serviceEnigu 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:

Ĉ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.py2. 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/syslogVi 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 botVidu ĉ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 botfonto: www.habr.com
