在Google Cloud Platform上托管的免费Telegram机器人

为什么选择GCP?


在向机器人写电报时,我遇到了一个问题,即如何快速免费地使机器人持续工作。如果您拥有多个机器人,则Heroku和Pythonanywhere的选项限制太小。因此,我决定使用GCP。该平台每年免费提供$ 300,并提供使用这些资金的巨大折扣(最高94%)。


如何托管您的机器人?


步骤1.注册GCP


转到GCP网站,然后单击免费入门

输入您的数据和卡。如果您自己未激活付费订阅,则不会从卡中扣款。


步骤2.创建一个虚拟机


注册后,您将进入该服务的主页。您需要在“资​​源”部分中选择“计算引擎”选项卡。

您必须创建一个新实例。


如果您不会在虚拟机中部署数据库,则可以选择g1-small,否则建议使用n1-standart。


您还需要选择一个操作系统。我选择了Debian GNU / Linux 9(拉伸)。


已创建所有虚拟机。常规部署需要1到5分钟。

步骤3.配置虚拟机


您可以从PC通过SSH连接,也可以通过平台进行交互。
为此,请单击SSH。


您的Linux终端将在新窗口中打开。


现在让我们继续进行设置。首先,输入命令:

sudo apt-get update

更新有关最新软件包版本的信息。

输入后:

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

Python本身不需要安装,它已经存在。

现在,您需要安装所有必需的库。有一点细微差别,所有库必须安装两次:

pip3 install ‘name_of_package’

通过python3命令使用,以及

sudo pip3 install ‘name_of_package’

对于systemd。该实用程序将帮助您启动漫游器,并在崩溃时将其重新启动。
通过python3运行bot的最简单方法,但是如果断开连接,它将关闭。您可以使用屏幕,但漫游器不会自行重启。您也可以将crontab与端口检查一起使用,但是在我看来,此选项比systemd更为复杂。

步骤4.将机器人填充到服务器


有两种方法可以填充您的机器人。如果您不是与Git的朋友,则可以将bot存档在.tar中,然后将其上传到服务器:


之后,使用以下命令将其解压缩:

tar -xvf yourfile.tar

现在,您的机器人已存储在一个带有存档名称的文件夹中。

第二种方法是通过Git。我认为不应该向知道如何使用它的人解释如何执行此操作。

使用命令安装后:

sudo apt install git

您可以在VM上克隆它。

之后,让我们继续设置systemd。为此,请转到他的目录:

cd /etc/systemd/system

并创建bot.service文件:

sudo nano bot.service

在打开的窗口中输入以下内容:


[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

关闭并保存文件。使用命令Ctrl + X关闭。

之后,依次输入命令:

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

如果一切顺利,您将看到类似以下内容:


就是这样,现在您的机器人可以独立工作了。希望我的文章能帮助您托管机器人。

聚苯乙烯


1.检查您的机器人是否有错误


启动您的机器人并测试其操作,然后再通过systemd启动它。为此,请转到带有bot的文件夹并通过python运行。

cd <  >
python3 bot.py

2.使用py脚本向文件添加编码


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

在文件的开头插入。

3,systemd中的错误


如果您检查了bot的错误并且可以正常工作,但是它不想在systemd中启动,那么您可以查看日志并通过查看文件来了解错误是什么:

sudo nano /var/log/syslog

您可以下载此文件并通过记事本++在计算机上查看。

4.自动更新


如果要添加或上传该机器人的新版本,请输入以下命令:

sudo systemctl stop bot

提供所有必要的操作。然后输入以下命令,使其再次起作用:

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

All Articles