Gratis hosting af Telegram-bot pÄ Google Cloud Platform

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%).

Gratis hosting af Telegram-bot pÄ Google Cloud Platform

Hvordan hoster du din bot?

Trin 1. Tilmelding til GCP

GÄ til webstedet GCP og klikker pÄ Kom godt i gang gratis.
Gratis hosting af Telegram-bot pÄ Google Cloud Platform
Indtast dine oplysninger og kreditkort. Pengene fra kortet vil ikke blive trukket, medmindre du selv aktiverer et betalt abonnement.

Gratis hosting af Telegram-bot pÄ Google Cloud Platform

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.
Gratis hosting af Telegram-bot pÄ Google Cloud Platform
Det er nĂždvendigt at oprette en ny instans.

Gratis hosting af Telegram-bot pÄ Google Cloud Platform
Hvis du ikke skal deployere en database pÄ virtuelle maskiner, sÄ kan du vÊlge g1-small, ellers anbefaler jeg n1-standard.

Gratis hosting af Telegram-bot pÄ Google Cloud Platform
Det er ogsÄ nÞdvendigt at vÊlge et operativsystem. Jeg valgte Debian GNU/Linux 9 (stretch).

Gratis hosting af Telegram-bot pÄ Google Cloud Platform
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.

Gratis hosting af Telegram-bot pÄ Google Cloud Platform
Du fÄr Äbnet et Linux-terminal i et nyt vindue.

Gratis hosting af Telegram-bot pÄ Google Cloud Platform
Nu gÄr vi videre til konfigurationen. FÞrst skriver vi kommandoen:

sudo apt-get update

for at opdatere informationerne om de nyeste versioner af pakker.

Derefter skriver vi:

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

Du 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:

Gratis hosting af Telegram-bot pÄ Google Cloud Platform
Derefter udpakkes den med kommandoen:

tar -xvf yourfile.tar

Nu 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 git

Du 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/system

Og vi opretter filen bot.service:

sudo nano bot.service

Indtast 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:

Gratis hosting af Telegram-bot pÄ Google Cloud Platform
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.py

2. 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/syslog

Du 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 bot

UdfÞ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 bot

Kilde: habr.com

KĂžb pĂ„lidelig webhosting med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KĂžb pĂ„lidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster