Google Cloud платформасындағы тегін Telegram бот хостингі

Неліктен GCP?

Боттарға арналған жеделхаттар жазу кезінде мен боттың тұрақты жұмыс істеуін қалай тез және еркін ету керек деген сұраққа тап болдым. Егер сізде бірнеше бот болса, Heroku және Pythonywhere опцияларында тым аз шектеулер болады. Сондықтан мен GCP пайдалануды шештім. Платформа жылына $300 тегін + осы қаражатты пайдалану кезінде үлкен жеңілдіктер береді (94% дейін).

Google Cloud платформасындағы тегін Telegram бот хостингі

Ботты қалай орналастыруға болады?

1-қадам: GCP үшін тіркелу

веб-торабына өтіңіз GCP және нұқыңыз Тегін бастамаңыз.
Google Cloud платформасындағы тегін Telegram бот хостингі
Мәліметтеріңізді және картаңызды енгізіңіз. Ақылы жазылымды өзіңіз белсендірмейінше, картадан ақша есептен шығарылмайды.

Google Cloud платформасындағы тегін Telegram бот хостингі

2-қадам. Виртуалды машина жасаңыз

Тіркеуден кейін сіз өзіңізді қызметтің негізгі бетінде табасыз. Ресурстар бөлімінде Есептеу механизмі қойындысын таңдау керек.
Google Cloud платформасындағы тегін Telegram бот хостингі
Жаңа дананы жасау керек.

Google Cloud платформасындағы тегін Telegram бот хостингі
Егер сіз дерекқорды орналастырмасаңыз виртуалды машина, содан кейін g1-small ала аласыз, әйтпесе мен n1-standart ұсынамын.

Google Cloud платформасындағы тегін Telegram бот хостингі
Сондай-ақ операциялық жүйені таңдау керек. Мен Debian GNU/Linux 9 (созылу) таңдадым.

Google Cloud платформасындағы тегін Telegram бот хостингі
Міне, VM құрылды. Әдеттегі орналастыру 1 минуттан 5 минутқа дейін созылады.

3-қадам: виртуалды машинаны орнату

Компьютерден SSH арқылы қосылуға немесе платформа арқылы өзара әрекеттесуге болады.
Мұны істеу үшін SSH түймесін басыңыз.

Google Cloud платформасындағы тегін Telegram бот хостингі
Сіздің Linux терминалыңыз жаңа терезеде ашылады.

Google Cloud платформасындағы тегін Telegram бот хостингі
Енді орнатуға көшейік. Алдымен пәрменді енгіземіз:

sudo apt-get update

соңғы бума нұсқалары туралы ақпаратты жаңарту үшін.

Содан кейін енгізіңіз:

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

Python-ның өзін орнатудың қажеті жоқ, ол қазірдің өзінде бар.

Енді барлық қажетті кітапханаларды орнату керек. Кішкентай нюанс бар: барлық кітапханалар екі рет орнатылуы керек:

pip3 install ‘name_of_package’

python3 пәрмені арқылы пайдалану үшін және

sudo pip3 install ‘name_of_package’

systemd үшін. Бұл қызметтік бағдарлама ботты іске қосуға және ол бұзылған жағдайда оны қайта іске қосуға көмектеседі.
Ботты іске қосудың ең оңай жолы - python3 арқылы, бірақ ажыратсаңыз, ол өшеді. Экранды пайдалануға болады, бірақ бот өзін қайта іске қоспайды. Сіз сондай-ақ портты тексеру арқылы crontab пайдалана аласыз, бірақ менің ойымша, бұл опция systemd қарағанда күрделірек.

Қадам 4. Ботты серверге жүктеңіз

Ботты жүктеп салудың екі жолы бар. Егер сіз Git-пен таныс болмасаңыз, ботты жай ғана .tar ішінде мұрағаттап, серверге жүктей аласыз:

Google Cloud платформасындағы тегін Telegram бот хостингі
Осыдан кейін оны пәрменмен ашыңыз:

tar -xvf yourfile.tar

Енді сіздің бот мұрағат атауы бар қалтада сақталады.

Екінші жол - Git арқылы. Оны қалай қолдану керектігін білетін адамдарға мұны қалай жасау керектігін түсіндірудің қажеті жоқ деп ойлаймын.

Оны пәрменмен орнатқаннан кейін:

sudo apt install git

Сіз оны VM-ге клондай аласыз.

Осыдан кейін біз systemd орнатуға көшеміз. Ол үшін оның каталогына өтіңіз:

cd /etc/systemd/system

Және bot.service файлын жасаңыз:

sudo nano bot.service

Ашылған терезеге келесіні енгізіңіз:


[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

Файлды жабыңыз және сақтаңыз. Ctrl+X командасы арқылы жабылады.

Осыдан кейін командаларды бір-бірден енгізіңіз:

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

Егер бәрі жақсы болса, сіз келесідей нәрсені көресіз:

Google Cloud платформасындағы тегін Telegram бот хостингі
Міне, енді сіздің ботыңыз дербес жұмыс істейді. Менің мақалам сізге роботты орналастыруға көмектеседі деп үміттенемін.

PS

1. Ботыңызда қателер бар-жоғын тексеріңіз

Ботты іске қосыңыз және оны systemd арқылы іске қоспас бұрын тексеріңіз. Ол үшін бот бар қалтаға өтіп, оны python арқылы іске қосыңыз.

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

2. py сценарийлері бар файлдарға кодтауды қосыңыз

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

Файлдың басына кірістіріңіз.

3. Systemd жүйесіндегі қателер

Егер сіз боттағы қателерді тексерген болсаңыз және ол жақсы жұмыс істесе, бірақ ол systemd жүйесінде іске қосқысы келмесе, онда журналдарды қарап, файлды қарап, қатенің не екенін түсінуге болады:

sudo nano /var/log/syslog

Сіз бұл файлды жүктеп алып, оны Блокнот++ арқылы компьютеріңізден көре аласыз.

4.Бот жаңартуы

Боттың жаңа нұсқасын қосқыңыз немесе жүктеп салғыңыз келсе, пәрменді енгізіңіз:

sudo systemctl stop bot

Барлық қажетті манипуляциялардан өтіңіз. Содан кейін оны қайтадан жұмыс істеу үшін келесі пәрмендерді енгізіңіз:

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

Ақпарат көзі: www.habr.com

пікір қалдыру