Waarom GCP?
Bij het schrijven van telegrammen voor bots kwam ik de vraag tegen hoe je de bot snel en vrij constant kunt laten werken. De Heroku- en Pythonanywhere-opties hebben te kleine limieten als je meer dan één bot hebt. Daarom besloot ik GCP te gebruiken. Het platform biedt een jaar lang $ 300 gratis + enorme kortingen bij gebruik van dit geld (tot 94%).

Hoe host u uw bot?
Stap 1: Registreer u voor GCP
Laten we naar de site gaan en druk op Ga gratis van start.

Vul uw gegevens en kaart in. Er wordt geen geld van de kaart afgeschreven, tenzij je zelf een betaald abonnement activeert.

Stap 2. Maak een virtuele machine
Na registratie bevindt u zich op de hoofdpagina van de dienst. U moet het tabblad Compute Engine in het gedeelte Bronnen selecteren.

Er moet een nieuw exemplaar worden gemaakt.

Als je de database niet gaat implementeren op virtuele machineAls je voor g1-small kiest, raad ik n1-standard aan.

Je moet ook het besturingssysteem selecteren. Ik heb gekozen voor Debian GNU /Linux 9 (stretch).

Dat is alles, de VM is gemaakt. Een typische implementatie duurt 1 tot 5 minuten.
Stap 3: De virtuele machine instellen
U kunt verbinding maken via SSH vanaf uw pc of communiceren via het platform.
Om dit te doen, klikt u op SSH.
![]()
Er wordt een terminal voor u geopend. Linux in een nieuw venster.

Laten we nu verder gaan met de opstelling. Eerst voeren we het commando in:
sudo apt-get updateom informatie over de nieuwste pakketversies bij te werken.
Voer vervolgens in:
sudo apt-get install python3-setuptools
sudo apt-get install python3-pipHet is niet nodig om Python zelf te installeren, het is er al.
Nu moet je alle benodigde bibliotheken installeren. Er is een kleine nuance: alle bibliotheken moeten twee keer worden geïnstalleerd:
pip3 install ‘name_of_package’voor gebruik via de opdracht Python3, en
sudo pip3 install ‘name_of_package’ voor systemd. Dit hulpprogramma helpt u de bot te starten en opnieuw op te starten als deze crasht.
De eenvoudigste manier om de bot te gebruiken is via Python3, maar deze wordt uitgeschakeld als u de verbinding verbreekt. U kunt het scherm gebruiken, maar de bot zal zichzelf niet opnieuw opstarten. Je kunt crontab ook gebruiken met poortcontrole, maar ik denk dat deze optie ingewikkelder is dan systemd.
Stap 4. Upload de bot naar de server
Er zijn twee manieren om uw bot te uploaden. Als je niet bekend bent met Git, kun je de bot eenvoudig in .tar archiveren en naar de server uploaden:

Pak het daarna uit met het commando:
tar -xvf yourfile.tarNu wordt uw bot opgeslagen in een map met de naam van het archief.
De tweede manier is via Git. Ik denk dat het niet nodig is om uit te leggen hoe je dit moet doen aan mensen die weten hoe ze het moeten gebruiken.
Na installatie met het commando:
sudo apt install gitU kunt het naar uw VM klonen.
Daarna gaan we verder met het instellen van systemd. Om dit te doen, gaat u naar de map:
cd /etc/systemd/systemEn maak het bot.service-bestand:
sudo nano bot.serviceVoer het volgende in het venster dat wordt geopend in:
[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
Sluit het bestand en sla het op. Sluit met de opdracht Ctrl+X.
Voer daarna de opdrachten één voor één in:
sudo systemctl daemon-reload
sudo systemctl enable bot
sudo systemctl start bot
sudo systemctl status bot
Als alles goed gaat, zie je zoiets als dit:

Dat is alles, nu werkt uw bot onafhankelijk. Ik hoop dat mijn artikel je zal helpen bij het hosten van je bot.
PS
1. Controleer uw bot op fouten
Start uw bot en test hem voordat u hem door systemd laat lopen. Ga hiervoor naar de map met de bot en voer deze uit via Python.
cd <папка вашего бота>
python3 bot.py2.Voeg codering toe aan bestanden met py-scripts
#!/usr/bin/env python
# -*- coding: utf-8 -*-
Voeg aan het begin van het bestand in.
3. Fouten in systemd
Als je de bot op fouten hebt gecontroleerd en deze prima heeft gewerkt, maar hij wil niet starten in systemd, dan kun je de logs bekijken en begrijpen wat de fout is door naar het bestand te kijken:
sudo nano /var/log/syslogU kunt dit bestand downloaden en op uw computer bekijken met Notepad++.
4.Bot-update
Als je een nieuwe versie van de bot wilt toevoegen of uploaden, voer dan de opdracht in:
sudo systemctl stop botDoorloop alle noodzakelijke manipulaties. En voer vervolgens de volgende opdrachten in om het weer te laten werken:
sudo systemctl daemon-reload
sudo systemctl start bot
sudo systemctl status botBron: www.habr.com
