如何借助GCP实现Python脚本24/7不间断运行
适合24/7运行Python Bot的GCP方案及部署步骤
一、优先推荐的GCP产品(按成本/复杂度排序)
1. Cloud Run(最适合轻量Bot)
- 特点:无服务器架构,按实际运行资源计费,可配置最小实例数保证24/7在线,空闲时不会额外消耗资源,免费额度足够支撑简单Bot长期运行。
- 适用场景:你的轻量Python Bot,无特殊环境依赖、不需要持续占用大量内存的情况。
2. Compute Engine(VM虚拟机,最灵活)
- 特点:完全可控的虚拟机环境,可自定义系统配置、开机自启规则,适合需要后台常驻、依赖特定运行环境的Bot。
- 适用场景:Bot需要持续运行、涉及自定义系统设置或本地缓存的情况。
3. Cloud Functions(不推荐24/7常驻)
- 注意:该服务为事件驱动型,虽可通过定时触发器模拟运行,但无法实现真正的24/7常驻,不适合你的需求。
二、具体部署步骤
方案1:Cloud Run部署
准备代码与Docker镜像
- 编写
Dockerfile(适配你的Bot):# 基础Python镜像 FROM python:3.9-slim # 设置工作目录 WORKDIR /app # 复制依赖清单 COPY requirements.txt . # 安装依赖(避免缓存冗余) RUN pip install --no-cache-dir -r requirements.txt # 复制Bot代码 COPY bot.py . # 启动命令 CMD ["python", "bot.py"] - 确保
requirements.txt包含Bot所有依赖包。
- 编写
构建并推送镜像到GCR
- 安装GCP SDK后登录:
gcloud auth login - 绑定你的GCP项目:
gcloud config set project 你的项目ID - 构建并推送镜像:
gcloud builds submit --tag gcr.io/你的项目ID/python-bot
- 安装GCP SDK后登录:
部署到Cloud Run
- 执行部署命令(保证24/7在线需设置最小实例数):
gcloud run deploy python-bot \ --image gcr.io/你的项目ID/python-bot \ --platform managed \ --region us-central1 \ --allow-unauthenticated \ --min-instances 1 - 说明:
--min-instances 1确保始终有一个实例运行,不会因空闲休眠。
- 执行部署命令(保证24/7在线需设置最小实例数):
方案2:Compute Engine部署
创建VM实例
- 登录GCP控制台,进入Compute Engine→实例→创建实例
- 配置选择:免费层级的
e2-micro实例(每月750小时免费额度),操作系统选Ubuntu 22.04 LTS,勾选允许HTTP/HTTPS流量(若Bot需对外访问)
配置Bot运行环境
- 通过SSH连接VM:
gcloud compute ssh 你的实例名 --zone us-central1-a - 安装Python及依赖:
sudo apt update && sudo apt install python3-pip -y pip3 install --user -r requirements.txt - 上传Bot代码(用
scp或Git克隆到VM指定目录)
- 通过SSH连接VM:
设置开机自启与后台守护
- 创建systemd服务文件
/etc/systemd/system/python-bot.service:[Unit] Description=Python Bot 守护服务 After=network.target [Service] User=你的VM用户名 WorkingDirectory=/home/你的VM用户名/bot目录 ExecStart=/usr/bin/python3 /home/你的VM用户名/bot目录/bot.py Restart=always # Bot崩溃自动重启 [Install] WantedBy=multi-user.target - 启动并启用服务:
sudo systemctl daemon-reload sudo systemctl start python-bot sudo systemctl enable python-bot - 查看运行状态:
sudo systemctl status python-bot
- 创建systemd服务文件
三、成本注意事项
- Cloud Run:免费额度包含每月180,000 vCPU秒、360,000 GiB秒,简单Bot基本无需付费。
- Compute Engine:
e2-micro实例在免费额度内(单实例每月750小时),超出后按小时计费,成本极低。
内容的提问来源于stack exchange,提问作者user17640593
相关产品推荐
相关产品推荐

