Per què GCP?
Quan escrivia telegrames per a robots, em vaig trobar amb la pregunta de com fer que el bot funcioni de manera ràpida i gratuïta. Les opcions Heroku i Pythonanywhere són massa baixes si teniu més d'un bot. Així que vaig decidir utilitzar GCP. La plataforma ofereix 300 dòlars durant un any de manera gratuïta + grans descomptes quan s'utilitzen aquests fons (fins al 94%).

Com allotjar el vostre bot?
Pas 1: registreu-vos a GCP
Anem al lloc i feu clic Comenceu de forma gratuïta.

Introdueix les teves dades i la teva targeta. Els diners de la targeta no es carregaran si no activeu vosaltres mateixos la subscripció de pagament.

Pas 2. Creeu una màquina virtual
Després del registre, us trobareu a la pàgina principal del servei. Heu de seleccionar la pestanya Compute Engine a la secció Recursos.

Heu de crear una instància nova.

Si no teniu previst desplegar la base de dades a màquina virtual, aleshores pots agafar g1-small, si no, et recomano n1-estàndard.

També haureu de seleccionar un sistema operatiu. Vaig triar Debian GNU/Linux 9 (estirament).

Això és tot, es crea la VM. El seu desplegament habitual triga d'1 a 5 minuts.
Pas 3: configureu la màquina virtual
Podeu connectar-vos mitjançant SSH des del vostre ordinador o interactuar a través de la plataforma.
Per fer-ho, feu clic a SSH.
![]()
Això obrirà un terminal Linux en una finestra nova.

Ara passem a la configuració. Primer introduïu l'ordre:
sudo apt-get updateper actualitzar la informació sobre les últimes versions de paquets.
Després d'entrar:
sudo apt-get install python3-setuptools
sudo apt-get install python3-pipPython en si no cal instal·lar-lo, ja hi és.
Ara cal instal·lar totes les biblioteques necessàries. Hi ha un petit matís, totes les biblioteques s'han d'instal·lar dues vegades:
pip3 install ‘name_of_package’per utilitzar-lo mitjançant l'ordre python3 i
sudo pip3 install ‘name_of_package’ per a systemd. Aquesta utilitat us ajudarà a iniciar el bot i reiniciar-lo si es bloqueja.
La manera més senzilla d'executar el bot és mitjançant Python3, però s'apagarà si us desconnecteu. Podeu utilitzar la pantalla, però el bot no es reiniciarà. També podeu utilitzar crontab amb una comprovació de port, però crec que aquesta opció és més complicada que systemd.
Pas 4. Carregueu el bot al servidor
Hi ha dues maneres de pujar el vostre bot. Si no ets compatible amb Git, pots simplement comprimir el bot a .tar i pujar-lo al servidor:

Després d'això, descomprimiu-lo amb l'ordre:
tar -xvf yourfile.tarAra el vostre bot s'emmagatzema en una carpeta amb el nom de l'arxiu.
La segona via és a través de Git. Crec que no val la pena explicar com fer-ho a la gent que ho sap fer servir.
Després d'instal·lar-lo amb l'ordre:
sudo apt install gitPodeu clonar-lo a la vostra VM.
Després d'això, passem a configurar systemd. Per fer-ho, aneu al seu directori:
cd /etc/systemd/systemI creeu un fitxer bot.service:
sudo nano bot.serviceIntroduïu el següent a la finestra que s'obre:
[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
Tanqueu i deseu el fitxer. Tancat amb Ctrl+X.
Després d'això, introduïu les ordres al seu torn:
sudo systemctl daemon-reload
sudo systemctl enable bot
sudo systemctl start bot
sudo systemctl status bot
Si tot va bé, veuràs alguna cosa com això:

Tot, ara el teu bot funciona de manera independent. Espero que el meu article us ajudi a allotjar el vostre bot.
PS
1.Comproveu si hi ha errors al vostre bot
Inicieu el vostre bot i proveu-lo abans d'executar-lo mitjançant systemd. Per fer-ho, aneu a la carpeta amb el bot i executeu Python.
cd <папка вашего бота>
python3 bot.py2. Afegiu codificació als fitxers amb scripts py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
Insereix al principi del fitxer.
3. Errors en systemd
Si heu comprovat si hi ha errors al bot i ha funcionat bé, però no vol executar-se a systemd, podeu mirar els registres i entendre quin és l'error visualitzant el fitxer:
sudo nano /var/log/syslogPodeu descarregar aquest fitxer i visualitzar-lo al vostre ordinador amb Notepad++.
4.Actualització del bot
Si voleu afegir o carregar una nova versió del bot, introduïu l'ordre:
sudo systemctl stop botVeure totes les manipulacions necessàries. A continuació, introduïu les ordres següents perquè torni a funcionar:
sudo systemctl daemon-reload
sudo systemctl start bot
sudo systemctl status botFont: www.habr.com
