为什么选择 GCP?
在为机器人写电报时,我遇到了如何快速免费地让机器人一直工作的问题。 如果您有多个机器人,Heroku 和 Pythonanywhere 选项就太低了。 所以我决定使用 GCP。 该平台每年免费提供 300 美元 + 使用这些资金时的巨大折扣(高达 94%)。

如何托管您的机器人?
第 1 步:注册 GCP
让我们去网站 并推 免费试用.

输入您的详细信息和卡。 如果您未自行激活付费订阅,则不会从卡中扣除费用。

步骤 2. 创建虚拟机
注册后,您会发现自己位于该服务的主页上。 您需要选择“资源”部分中的“计算引擎”选项卡。

您需要创建一个新实例。

如果您不打算将数据库部署在 虚拟机那么你可以选择 g1-small,否则我推荐 n1-standart。

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

就是这样,虚拟机就创建好了。 它通常的部署需要 1 到 5 分钟。
第三步:设置虚拟机
您可以从您的 PC 通过 SSH 连接或通过该平台进行交互。
为此,请单击 SSH。
![]()
将会为您打开一个终端。 Linux 在一个新窗口中。

现在让我们继续设置。 首先输入命令:
sudo apt-get update更新有关最新软件包版本的信息。
我们进入后:
sudo apt-get install python3-setuptools
sudo apt-get install python3-pipPython 本身不需要安装,它已经存在。
现在您需要安装所有必需的库。 有一点细微差别,所有库都必须安装两次:
pip3 install ‘name_of_package’通过 python3 命令使用,和
sudo pip3 install ‘name_of_package’ 对于系统。 该实用程序将帮助您启动机器人并在它崩溃时重新启动它。
运行机器人的最简单方法是通过 python3,但如果断开连接,它就会关闭。 您可以使用屏幕,但机器人不会自行重启。 您也可以使用带有端口检查的 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
如果一切顺利,你会看到这样的东西:

一切,现在你的机器人独立工作。 我希望我的文章能帮助您托管您的机器人。
PS
1.检查你的机器人是否有错误
启动你的机器人并在通过 systemd 运行它之前对其进行测试。 为此,请转到包含机器人的文件夹并通过 python 运行。
cd <папка вашего бота>
python3 bot.py2.用py脚本给文件添加编码
#!/usr/bin/env python
# -*- coding: utf-8 -*-
在文件开头插入。
3.系统中的错误
如果您检查了机器人的错误并且它工作正常,但它不想在 systemd 中运行,那么您可以查看日志并通过查看文件了解错误是什么:
sudo nano /var/log/syslog您可以下载此文件并在计算机上使用 Notepad++ 查看它。
4.机器人更新
如果要添加或上传新版本的机器人,请输入命令:
sudo systemctl stop bot查看所有必要的操作。 然后输入以下命令使其再次工作:
sudo systemctl daemon-reload
sudo systemctl start bot
sudo systemctl status bot来源: habr.com
