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