Miks GCP?
Kuna ma kirjutasin Telegrami robote ning sattusin küsimusele, kuidas kiiresti ja tasuta tagada, et robot töötaks pidevalt. Heroku ja Pythonanywhere lahendused on liiga madalate limiitidega, kui sul on rohkem kui üks robot. Seetõttu otsustasin kasutada GCP-d. Platvorm pakub esmakordset kasutust tasuta 300 $ aastas + suured allahindlused nende vahendite kasutamisel (kuni 94%).

Kuidas oma robotit majutada?
Samm 1. Registreerimine GCP-s
Külastame veebilehte ja vajutame Alusta tasuta.

Sisestame oma andmed ja kaardi. Raha kaardilt ei tule maha, kui sa ise ei aktiveeri tasulist tellimust.

Samm 2. Loome virtuaalse masina
Pärast registreerimist jõuad teenuse avalehele. Pead valima Ressursside sektsioonis Compute Engine vahekaart.

Peab looma uue eksemplari.

Kui sa ei kavatse rakendada DB-d virtuaalmasinas, siis võid võtta g1-small, vastasel juhul soovitan n1-standard.

Samuti pead valima OS-i. Mina valisin Debian GNU/Linux 9 (stretch).

Kõik, VM on loodud. Tavaolukorras võtab selle juurutamine aega 1 kuni 5 minutit.
Samm 3. Virtuaalse masina seadistamine
Sa saad ühendada SSH kaudu oma PC-st või suhelda läbi platvormi.
Käivitage SSH.
![]()
Avaneb Linuxi terminal uues aknas.

Liigume seadistamise juurde. Esmalt sisestage käsk:
sudo apt-get updatepakettide uusima versiooni teabe värskendamiseks.
Seejärel sisestage:
sudo apt-get install python3-setuptools
sudo apt-get install python3-pipPythonit ise paigaldama ei pea, see on juba olemas.
Nüüd on vajalik paigaldada kõik vajalikud raamatukogud. On üks väike nüanss: kõik raamatukogud tuleb paigaldada kahel korral:
pip3 install ‘name_of_package’python3 kaudu kasutamiseks, ja
sudo pip3 install ‘name_of_package’ systemd jaoks. See utiliit aitab teil boti käivitada ja seda taaskäivitada, kui see ebaõnnestub.
Lihtsaim viis boti käivitamiseks on python3 kaudu, kuid see lakkab töötamast, kui te välja logite. Võite kasutada screen'i, kuid bott ei taaskäivitu ise. Samuti on võimalik kasutada crontab'i porti kontrollimisega, kuid see variant tundub mulle keerulisem kui systemd.
Samm 4. Laadime boti serverisse
Teie boti üleslaadimiseks on kaks viisi. Kui te ei oska Git'iga töötada, võite lihtsalt boti .tar failina arhiveerida ja serverisse üles laadida:

Seejärel dekompresseerige see käsuga:
tar -xvf yourfile.tarNüüd asub teie bott kaustas, mille nimi on arhivi nimi.
Teine võimalus läbi Giti. Arvan, et ei maksa selgitada, kuidas seda teha inimestele, kes oskavad sellega töötada.
Pärast selle installimist käsuga:
sudo apt install gitSaate selle enda virtuaalmasinale kloonida.
Pärast seda liigume systemd seadistamise juurde. Selleks läheme tema kausta:
cd /etc/systemd/systemJa loome faili bot.service:
sudo nano bot.serviceKandke avatud aknasse järgnev:
[Unit]
Description=Telegram bot 'Botinimi'
After=syslog.target
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/home/teie kasutajanimi/kaust, kus bot asub
ExecStart=/usr/bin/python3 /home/teie kasutajanimi/kaust, kus bot asub/bot.py
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
Sulgege ja salvestage fail. Sulgemiseks kasutage käsku Ctrl+X.
Pärast seda sisestage käsud järjestikku:
sudo systemctl daemon-reload
sudo systemctl enable bot
sudo systemctl start bot
sudo systemctl status bot
Kui kõik läheb hästi, näete umbes järgmist:

Kõik, nüüd töötab teie bot iseseisvalt. Loodan, et minu artikkel aitab teil oma boti hostida.
P.S.
1. Kontrollige oma boti vigade suhtes
Käivitage oma bot ja kontrollige selle tööd enne, kui käivitate selle läbi systemd. Selleks minge boti kausta ja käivitage see pythoniga.
cd
python3 bot.py2. Lisage py-skriptide failidesse kodeering.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
Kleege faili algusesse.
3. Vead systemd-s.
Kui olete boti vigade osas kontrollinud ja see töötas normaalselt, kuid ei soovi systemd-s käivituda, võite vaadata logisid ja aru saada, milles probleem seisneb, vaadates faili:
sudo nano /var/log/syslogSaate selle faili alla laadida ja oma arvutis Notepad++-ga vaadata.
4. Boti uuendamine.
Kui soovite boti lisada või uue versiooni üles laadida, siis sisestage käsk:
sudo systemctl stop botTehke kõik vajalikud toimingud. Seejärel sisestage järgmised käsud, et see uuesti töötama hakkaks:
sudo systemctl daemon-reload
sudo systemctl start bot
sudo systemctl status botAllikas: habr.com
