Miért GCP?
A Telegram-bot írása során felmerült a kérdés, hogyan lehet gyorsan és ingyenesen biztosítani, hogy a bot folyamatosan működjön. A Heroku és a Pythonanywhere lehetőségek túl kicsi limitekkel rendelkeznek, ha több mint egy botos van. Ezért úgy döntöttem, hogy a GCP-t használom. A platform ingyen 300 $-t biztosít egy évre + óriási kedvezményekkel a források felhasználása esetén (akár 94%-ig).

Hogyan hosztold a botodat?
1. lépés. Regisztráció a GCP-n
Lépjünk a weboldalra mellett, majd kattintsunk Kezdj el ingyen.

Adja meg adatait és a kártyát. A pénz nem kerül levonásra a kártyáról, amíg nem aktiválja a fizetős előfizetést.

2. lépés. Virtuális gép létrehozása
A regisztráció után a szolgáltatás főoldalán találja magát. Ki kell választania a Compute Engine lapot az Erőforrások részben.

Új példányt kell létrehozni.

Ha nem kíván adatbázist telepíteni a virtuális gépben, akkor a g1-small-t választhatja, különben ajánlom az n1-standard-t.

Ki kell választania az operációs rendszert is. Én a Debian GNU/Linux 9 (stretch) verziót választottam.

Kész, a VM létrejött. A normál telepítési idő 1-5 perc között változik.
3. lépés. A virtuális gép konfigurálása
SSH-n keresztül csatlakozhat a PC-jéről, vagy interakcióba léphet a platformon.
Ehhez kattintson az SSH-ra.
![]()
Egy Linux terminál nyílik meg egy új ablakban.

Most áttérünk a konfigurálásra. Először írja be a parancsot:
sudo apt-get updatea legújabb csomagverziók frissítéséhez.
Ezután írja be:
sudo apt-get install python3-setuptools
sudo apt-get install python3-pipA Python telepítése nem szükséges, már megtalálható.
Most minden szükséges könyvtárat telepíteni kell. Van egy kis árnyoldal, a könyvtárakat kétszer kell telepíteni:
pip3 install ‘name_of_package’a python3 parancs használatához, és
sudo pip3 install ‘name_of_package’ a systemd-hez. Ez az eszköz segít a bot elindításában és újraindításában, ha leáll.
A legegyszerűbb módja a bot indításának python3-on, de akkor leáll, ha Ön is kikapcsolódik. Használhatja a screent, de a bot nem fog automatikusan újraindulni. Használhat cron-t portellenőrzéssel is, de ez a megoldás bonyolultabb, mint a systemd.
4. lépés. Bot feltöltése a szerverre
Két módon töltheti fel a botját. Ha nem ismeri a Git-et, egyszerűen archiválhatja a botot .tar formátumban, és feltöltheti a szerverre:

Ezután a következő paranccsal ki kell csomagolnia:
tar -xvf yourfile.tarMost a botja az archívum nevével ellátott mappában található.
A Git-en keresztüli második módszer. Nem hiszem, hogy szükséges elmagyarázni, hogyan kell ezt megtenni azoknak, akik tudják használni.
A telepítés után a következő parancsot kell futtatni:
sudo apt install gitKlónold le a szerveredre.
Ezután térjünk át a systemd beállítására. Ehhez navigálj a következő könyvtárba:
cd /etc/systemd/systemÉs hozz létre egy bot.service fájlt:
sudo nano bot.serviceÍrd be az alábbiakat az megnyíló ablakba:
[Unit]
Description=Telegram bot 'A bot neve'
After=syslog.target
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/home/a felhasználód neve/a bot könyvtárának neve
ExecStart=/usr/bin/python3 /home/a felhasználód neve/a bot könyvtárának neve/bot.py
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
Zárd be és mentse a fájlt. A Ctrl+X billentyűkombinációval lehet bezárni.
Ezután futtasd a parancsokat egyenként:
sudo systemctl daemon-reload
sudo systemctl enable bot
sudo systemctl start bot
sudo systemctl status bot
Ha minden jól megy, körülbelül ezt fogod látni:

Kész, most a botod önállóan működik. Remélem, hogy a cikkem segít neked a botod hosztolásában.
P.S.
1. Ellenőrizd a botodat hibák után
Futtasd a botodat, és ellenőrizd a működését, mielőtt elindítanád a systemd-n keresztül. Ehhez lépj be a bot könyvtárába és indítsd el Python-nal.
cd
python3 bot.py2. Add meg a fájlokban a py-scriptek kódolását
#!/usr/bin/env python
# -*- coding: utf-8 -*-
Illeszd be a fájl elejére.
3. Hibák a systemd-ben
Ha ellenőrizted a botodat hibák után és az normálisan működött, de nem akar elindulni a systemd-n keresztül, akkor megnézheted a naplókat, és megértheted, mi a hiba, ha megnyitod a fájlt:
sudo nano /var/log/syslogLetöltheted ezt a fájlt, és megnyithatod a számítógépeden a Notepad++-on.
4. A bot frissítése
Ha szeretnél kiegészíteni vagy feltölteni egy új verziót a botból, írd be a következő parancsot:
sudo systemctl stop botVégezd el a szükséges műveleteket, majd add ki az alábbi parancsokat, hogy újra működjön:
sudo systemctl daemon-reload
sudo systemctl start bot
sudo systemctl status botForrás: habr.com
