Hvorfor GCP?
Da jeg skrev Telegram-bots, stÞdte jeg pÄ spÞrgsmÄlet om, hvordan jeg hurtigt og gratis kan fÄ botten til at kÞre konstant. Mulighederne med Heroku og Pythonanywhere har alt for smÄ begrÊnsninger, hvis du har mere end én bot. Derfor besluttede jeg mig for at bruge GCP. Platformen giver gratis $300 i et Är + store rabatter ved brug af disse midler (op til 94%).

Hvordan hoster du din bot?
Trin 1. Tilmelding til GCP
GÄ til webstedet og klikker pÄ Kom godt i gang gratis.

Indtast dine oplysninger og kreditkort. Pengene fra kortet vil ikke blive trukket, medmindre du selv aktiverer et betalt abonnement.

Trin 2. Opret en virtuel maskine
Efter tilmelding vil du befinde dig pÄ hovedsiden for tjenesten. Du skal vÊlge fanen Compute Engine under Ressourcer.

Det er nĂždvendigt at oprette en ny instans.

Hvis du ikke skal deployere en database pÄ virtuelle maskiner, sÄ kan du vÊlge g1-small, ellers anbefaler jeg n1-standard.

Det er ogsÄ nÞdvendigt at vÊlge et operativsystem. Jeg valgte Debian GNU/Linux 9 (stretch).

Det er gjort, VM'en er oprettet. Den normale deployment tager mellem 1 og 5 minutter.
Trin 3. Konfiguration af den virtuelle maskine
Du kan tilslutte via SSH fra din PC eller interagere gennem platformen.
For at gÞre dette skal du klikke pÄ SSH.
![]()
Du fÄr Äbnet et Linux-terminal i et nyt vindue.

Nu gÄr vi videre til konfigurationen. FÞrst skriver vi kommandoen:
sudo apt-get updatefor at opdatere informationerne om de nyeste versioner af pakker.
Derefter skriver vi:
sudo apt-get install python3-setuptools
sudo apt-get install python3-pipDu behĂžver ikke at installere Python selv, det er allerede der.
Nu er det nĂždvendigt at installere alle de nĂždvendige biblioteker. Der er en lille nuance: alle biblioteker skal installeres to gange:
pip3 install âname_of_packageâfor at bruge via kommandolinjen python3, og
sudo pip3 install âname_of_packageâ til systemd. Dette vĂŠrktĂžj vil hjĂŠlpe dig med at starte botten og genstarte den, hvis den gĂ„r ned.
Den nemmeste mÄde at kÞre botten pÄ er via python3, men den vil stoppe, hvis du logger ud. Du kan bruge screen, men botten vil ikke genstarte automatisk. Du kan ogsÄ bruge crontab til at tjekke porten, men jeg synes, den lÞsning er mere kompliceret end systemd.
Trin 4. OverfĂžr botten til serveren
Der er to mÄder at overfÞre din bot pÄ. Hvis du ikke er fortrolig med Git, kan du blot zippe botten i .tar og uploade den til serveren:

Derefter udpakkes den med kommandoen:
tar -xvf yourfile.tarNu er din bot gemt i mappen med navnet pÄ arkivet.
Den anden metode via Git. Jeg tĂŠnker, det er overflĂždigt at forklare, hvordan man gĂžr det for folk, der kan bruge det.
Efter installationen med kommandoen:
sudo apt install gitDu kan klone det til din VM.
Derefter gÄr vi til opsÊtningen af systemd. For at gÞre dette gÄr vi til dens mappe:
cd /etc/systemd/systemOg vi opretter filen bot.service:
sudo nano bot.serviceIndtast fÞlgende i det Äbne vindue:
[Unit]
Description=Telegram bot 'Botnavn'
After=syslog.target
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/home/dit brugernavn/mappe hvor botten ligger
ExecStart=/usr/bin/python3 /home/dit brugernavn/mappe hvor botten ligger/bot.py
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
Luk og gem filen. Luk den med kommandoen Ctrl+X.
Derefter indtast fÞlgende kommandoer én ad gangen:
sudo systemctl daemon-reload
sudo systemctl enable bot
sudo systemctl start bot
sudo systemctl status bot
Hvis alt gÄr godt, vil du se noget like fÞlgende:

Det er det, nu kÞrer din bot selv. Jeg hÄber, min artikel hjÊlper dig med at hoste din bot.
P.S.
1. Tjek din bot for fejl
Start din bot og tjek dens funktionalitet, fÞr du kÞrer den med systemd. For at gÞre dette skal du gÄ til mappen med botten og starte den med python.
cd
python3 bot.py2. TilfĂžj kodningen i filer med python-scripts
#!/usr/bin/env python
# -*- coding: utf-8 -*-
IndsĂŠt i starten af filen.
3. Fejl i systemd
Hvis du har tjekket botten for fejl, og den fungerede normalt, men ikke vil starte i systemd, kan du se logfilerne og forstÄ, hvad fejlen er ved at tjekke filen:
sudo nano /var/log/syslogDu kan downloade denne fil og se den pÄ din computer gennem Notepad++.
4. Opdatering af botten
Hvis du Þnsker at tilfÞje eller uploade en ny version af botten, sÄ indtast kommandoen:
sudo systemctl stop botUdfÞr alle nÞdvendige handlinger. Og derefter indtast fÞlgende kommandoer for at fÄ den til at fungere igen:
sudo systemctl daemon-reload
sudo systemctl start bot
sudo systemctl status botKilde: habr.com
