Alojamiento gratuito de bots de Telegram en Google Cloud Platform

¿Por qué GCP?

Al escribir bots de Telegram, me encontré con la pregunta de cómo hacer que el bot funcione de manera continua y gratuita. Las opciones con Heroku y Pythonanywhere tienen límites demasiado bajos si tienes más de un bot. Por eso decidí utilizar GCP. La plataforma ofrece $300 gratis durante un año + enormes descuentos al utilizar estos fondos (hasta un 94%).

Alojamiento gratuito de bots de Telegram en Google Cloud Platform

¿Cómo alojar tu bot?

Paso 1. Registro en GCP

Visitemos el sitio GCP y hacemos clic en Empieza gratis.
Alojamiento gratuito de bots de Telegram en Google Cloud Platform
Ingresa tus datos y tu tarjeta. No se realizarán cargos a la tarjeta si no activas una suscripción de pago.

Alojamiento gratuito de bots de Telegram en Google Cloud Platform

Paso 2. Crear una máquina virtual

Después del registro, estarás en la página principal del servicio. Necesitas seleccionar la pestaña Compute Engine en la sección de Recursos.
Alojamiento gratuito de bots de Telegram en Google Cloud Platform
Es necesario crear una nueva instancia.

Alojamiento gratuito de bots de Telegram en Google Cloud Platform
Si no vas a desplegar una base de datos en una máquina virtual, puedes elegir g1-small, de lo contrario, recomiendo n1-standard.

Alojamiento gratuito de bots de Telegram en Google Cloud Platform
También será necesario seleccionar un sistema operativo. Yo elegí Debian GNU/Linux 9 (stretch).

Alojamiento gratuito de bots de Telegram en Google Cloud Platform
Listo, la VM ha sido creada. Su despliegue normal toma entre 1 y 5 minutos.

Paso 3. Configuración de la máquina virtual

Puedes conectarte por SSH desde tu PC o interactuar a través de la plataforma.
Para ello, haz clic en SSH.

Alojamiento gratuito de bots de Telegram en Google Cloud Platform
Se abrirá una terminal de Linux en una nueva ventana.

Alojamiento gratuito de bots de Telegram en Google Cloud Platform
Ahora pasemos a la configuración. Primero, ingresa el comando:

sudo apt-get update

para actualizar la información sobre las versiones más recientes de los paquetes.

Luego ingresa:

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

No es necesario instalar Python, ya está incluido.

Ahora es necesario instalar todas las bibliotecas necesarias. Hay un pequeño detalle: debes instalar todas las bibliotecas dos veces:

pip3 install 'name_of_package'

para usarlas a través del comando python3, y

sudo pip3 install 'name_of_package'

para systemd. Esta utilidad te ayudará a iniciar el bot y reiniciarlo si se cae.
La forma más sencilla de ejecutar el bot a través de python3, pero se apagará si te desconectas. Se puede usar screen, pero el bot no se reiniciará automáticamente. También se puede usar crontab con comprobación de puerto, pero me parece que esta opción es más complicada que systemd.

Paso 4. Subir el bot al servidor

Hay dos formas de subir tu bot. Si no estás familiarizado con Git, puedes simplemente archivar el bot en .tar y subirlo al servidor:

Alojamiento gratuito de bots de Telegram en Google Cloud Platform
Después de eso, desarchivamos con el comando:

tar -xvf yourfile.tar

Ahora tu bot está en la carpeta con el nombre del archivo.

El segundo método es a través de Git. No creo que sea necesario explicar cómo hacerlo a las personas que saben usarlo.

Después de instalarlo con el comando:

sudo apt install git

Puede clonarlo en su VM.

Después de esto, pasamos a la configuración de systemd. Para ello, accedemos a su directorio:

cd /etc/systemd/system

Y creamos el archivo bot.service:

sudo nano bot.service

Escribimos lo siguiente en la ventana que se abre:


[Unit]
Description=Bot de Telegram 'Nombre del bot'
After=syslog.target
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/home/nombre de su usuario/nombre de la carpeta donde está el bot
ExecStart=/usr/bin/python3 /home/nombre de su usuario/nombre de la carpeta donde está el bot/bot.py

RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Cierre y guarde el archivo. Se cierra con el comando Ctrl+X.

Después de esto, ingrese los comandos uno por uno:

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

Si todo está bien, verá algo como lo siguiente:

Alojamiento gratuito de bots de Telegram en Google Cloud Platform
Todo, ahora su bot funciona de manera independiente. Espero que mi artículo le ayude a alojar su bot.

P.D.

1. Verifique su bot por errores

Ejecute su bot y verifique su funcionamiento antes de ejecutarlo a través de systemd. Para ello, dirígete a la carpeta del bot y ejecútalo a través de python.

cd 
python3 bot.py

2. Agregue la codificación en los archivos de los scripts py

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

Inserte al comienzo del archivo.

3. Errores en systemd

Si ha verificado el bot por errores y funcionó normalmente, pero no quiere iniciarse en systemd, puede ver los registros y entender cuál es el error revisando el archivo:

sudo nano /var/log/syslog

Puede descargar este archivo y revisarlo en su computadora a través de Notepad++.

4. Actualización del bot

Si quiere agregar o subir una nueva versión del bot, ingrese el comando:

sudo systemctl stop bot

Realice todas las manipulaciones necesarias. Luego ingrese los siguientes comandos para que funcione nuevamente:

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

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster