Gratis hosting av Telegram-bot pÄ Google Cloud Platform

Varför GCP?

NÀr jag skrev Telegram-botar stötte jag pÄ frÄgan om hur man snabbt och gratis gör sÄ att boten arbetar kontinuerligt. Alternativen med Heroku och Pythonanywhere har för smÄ begrÀnsningar om du har mer Àn en bot. DÀrför beslutade jag mig för att anvÀnda GCP. Plattformen erbjuder 300 USD gratis i ett Är + stora rabatter nÀr du anvÀnder dessa medel (upp till 94%).

Gratis hosting av Telegram-bot pÄ Google Cloud Platform

Hur hostar man din bot?

Steg 1. Registrera dig pÄ GCP

GÄ till webbplatsen GCP och klickar pÄ Kom igÄng gratis.
Gratis hosting av Telegram-bot pÄ Google Cloud Platform
Ange dina uppgifter och kortet. Pengarna kommer inte att dras frÄn kortet om du inte sjÀlv aktiverar en betald prenumeration.

Gratis hosting av Telegram-bot pÄ Google Cloud Platform

Steg 2. Skapa en virtuell maskin

Efter registreringen hamnar du pÄ startsidan av tjÀnsten. Du mÄste vÀlja fliken Compute Engine under avsnittet Resurser.
Gratis hosting av Telegram-bot pÄ Google Cloud Platform
Du behöver skapa en ny instans.

Gratis hosting av Telegram-bot pÄ Google Cloud Platform
Om du inte kommer att distribuera en databas pÄ en virtuell maskin, kan du ta g1-small, annars rekommenderar jag n1-standard.

Gratis hosting av Telegram-bot pÄ Google Cloud Platform
Du behöver ocksÄ vÀlja ett operativsystem. Jag valde Debian GNU/Linux 9 (stretch).

Gratis hosting av Telegram-bot pÄ Google Cloud Platform
Klart, VM:n Àr skapad. Den vanliga distributionen tar mellan 1 och 5 minuter.

Steg 3. Konfigurera den virtuella maskinen

Du kan ansluta via SSH frÄn din PC eller interagera via plattformen.
För detta, klicka pÄ SSH.

Gratis hosting av Telegram-bot pÄ Google Cloud Platform
Du fÄr öppna en Linux-terminal i ett nytt fönster.

Gratis hosting av Telegram-bot pÄ Google Cloud Platform
LÄt oss nu gÄ vidare till konfigurationen. Först skriver vi kommandot:

sudo apt-get update

för att uppdatera informationen om de senaste versionerna av paketen.

DĂ€refter skriver vi:

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

SjÀlva Python behöver du inte installera, det finns redan.

Nu behöver du installera alla nödvÀndiga bibliotek. Det finns en liten nyans, alla bibliotek mÄste installeras tvÄ gÄnger:

pip3 install 'name_of_package'

för att anvÀnda dem via kommandot python3, och

sudo pip3 install 'name_of_package'

för systemd. Detta verktyg hjÀlper dig att starta boten och starta om den om den kraschar.
Det enklaste sÀttet att köra boten Àr genom python3, men den kommer att stÀngas av om du kopplar ifrÄn. Du kan anvÀnda screen, men boten kommer inte att starta om sig sjÀlv. Du kan ocksÄ anvÀnda crontab med portkontroll, men jag tycker att det alternativet Àr svÄrare Àn systemd.

Steg 4. Ladda upp boten till servern

Det finns tvÄ sÀtt att ladda upp din bot. Om du inte Àr vÀn med Git kan du helt enkelt komprimera boten i .tar och ladda upp den till servern:

Gratis hosting av Telegram-bot pÄ Google Cloud Platform
Efter det avkomprimerar vi den med kommandot:

tar -xvf yourfile.tar

Nu finns din bot i mappen med namnet pÄ arkivet.

Det andra sÀttet Àr via Git. Jag tror inte att jag behöver förklara hur man gör detta för personer som vet hur man anvÀnder det.

Efter installationen med kommandot:

sudo apt install git

Du kan klona det till din VM.

DÀrefter gÄr vi vidare till att konfigurera systemd. För detta gÄr vi in i dess katalog:

cd /etc/systemd/system

Och skapar filen bot.service:

sudo nano bot.service

Skriv in följande i det öppnade fönstret:


[Unit]
Description=Telegram-bot 'Botnamn'
After=syslog.target
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/home/ditt anvÀndarnamn/din mapp dÀr boten ligger
ExecStart=/usr/bin/python3 /home/ditt anvÀndarnamn/din mapp dÀr boten ligger/bot.py

RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

StÀng och spara filen. StÀng med kommandot Ctrl+X.

DĂ€refter skriver du in kommandona en i taget:

sudo systemctl daemon-reload
sudo systemctl enable bot
sudo systemctl start bot
sudo systemctl status bot

Om allt gÄr bra, ser du nÄgot i stil med följande:

Gratis hosting av Telegram-bot pÄ Google Cloud Platform
Nu fungerar din bot autonomt. Jag hoppas att min artikel hjÀlper dig att hosta din bot.

P.S.

1. Kontrollera din bot för fel

Kör din bot och kontrollera dess funktionalitet innan du kör den via systemd. För att göra detta, gÄ till mappen med boten och kör den med python.

cd 
python3 bot.py

2. LĂ€gg till teckenkodning i py-skriptfilerna

#!/usr/bin/env python
# -*- coding: utf-8 -*-

SÀtt in i början av filen.

3. Fel i systemd

Om du har testat boten för fel och den fungerade bra, men inte vill starta i systemd, kan du kolla loggarna för att förstÄ vad felet Àr genom att granska filen:

sudo nano /var/log/syslog

Du kan ladda ner denna fil och granska den pÄ din dator med Notepad++.

4. Uppdatera boten

Om du vill lÀgga till eller ladda upp en ny version av boten, skriv in kommandot:

sudo systemctl stop bot

Gör alla nödvÀndiga manipulationer. Skriv sedan följande kommandon för att fÄ den att fungera igen:

sudo systemctl daemon-reload
sudo systemctl start bot
sudo systemctl status bot

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster