我从第一次写 Telegram Bot 到把它部署到 Google Cloud(GCP),前前后后踩了不少坑。如果你跟我一样,是一个个人开发者,或者是个追求性价比的小团队成员,那么这套 低成本 + 高稳定性 的部署方法会非常适合你。整篇文章我会用第一人称手把手带你走一遍完整流程,省去你踩坑时间。


我为什么选择 Telegram Bot?功能、跨平台与自由度的结合

我选择 Telegram Bot 最大的原因是它开放、自由、不受国内网络限制,而且可以稳定运行多年不出问题。我有做个人通知服务(如服务器状态提醒、定时任务反馈),也做过 AI 对话接口和自动下载机器人,这些需求都非常依赖 Bot 的稳定性和灵活性。

相比微信公众号、国内 IM SDK,Telegram Bot 开发门槛低,文档清晰,而且几乎没有“审批环节”,开发者友好指数五颗星


先说重点:为什么选 GCP?低成本、高弹性、稳定性强

很多人会选国内云、Heroku 或 Vercel 来部署 Bot。我也都用过,但最后还是回到了 GCP,理由很简单:

  • GCP 新用户首年送 $300 额度,我部署 Bot 用不到 $1/月,这额度能跑三年;

  • 支持长期运行服务,不像 Vercel 那样只能跑 API;

  • 可以选低规格 VM(e2-micro)+ Cloud Run,真正做到几乎免费

  • 自动绑定公网 IP、全球加速,不用额外配置反代或者 NAT 网络

  • 稳定性极高,Bot 跑 24/7,连续几个月都没挂过。


准备阶段:注册 GCP + 创建 Telegram Bot 所需的基本资料

注册 Google Cloud 账号

我当时是通过 nice cloud 提供的“免实名、免绑卡”渠道搞定的——只需要一个邮箱,客服很快就给我开通了 GCP 国际版账号。

这是我最喜欢的点:不用提供身份证,也不用绑 Visa/MasterCard,直接能进 GCP 控制台。而且价格还比我以前自己注册的便宜,折扣价低 30% 左右

创建 Telegram Bot:一步步拿到 Token

  1. 打开 Telegram,搜索 @BotFather

  2. 输入 /newbot 创建新机器人;

  3. 给机器人取个名字和用户名(以 bot 结尾);

  4. BotFather 会返回一段 Token,这是等下部署要用的认证密钥。

记得把这段 Token 存好,千万别上传 GitHub 或其他平台


部署方案总览:从代码结构到运行方式我都亲测了

我测试过多种方式部署 Bot:

  • 用 Cloud Functions 做 Webhook(但冷启动太慢);

  • 用 App Engine(配置复杂);

  • 最终定在:使用 Cloud Run 运行一个容器化的 Python Bot或者直接用 e2-micro 实例部署本地运行 Bot

后者适合长期运行、资源少但稳定性要求高的场景,最接近本地服务器体验


第一步:开发 Telegram Bot 基础代码

我用的是 Python + python-telegram-bot 这个库,稳定、功能全。

安装依赖

pip install python-telegram-bot==13.15

示例代码:响应 /start 指令

from telegram.ext import Updater, CommandHandler

def start(update, context):
    update.message.reply_text('你好,这是你的 Telegram Bot!')

def main():
    TOKEN = 'YOUR_BOT_TOKEN_HERE'
    updater = Updater(TOKEN, use_context=True)
    dp = updater.dispatcher

    dp.add_handler(CommandHandler("start", start))

    updater.start_polling()
    updater.idle()

if __name__ == '__main__':
    main()

这个脚本可以直接在本地运行,只要联网就能收到指令响应。


第二步:部署到 GCP,打造 24/7 在线的 Bot

方案 A:使用 GCP VM 实例(长期运行推荐)

我选择的是 e2-micro 实例,配置虽低,但跑个 Bot 绰绰有余。

创建步骤:
  1. 进入 GCP 控制台 > Compute Engine;

  2. 创建实例,推荐区域 us-central1

  3. 机器类型选择 e2-micro(免费层);

  4. 操作系统建议选 Ubuntu 20.04;

  5. 打开防火墙允许 HTTP/HTTPS 访问(如需 Webhook);

  6. 创建完成后,用 SSH 登录,上传你的 Python Bot 脚本。

安装环境:
sudo apt update
sudo apt install python3 python3-pip -y
pip3 install python-telegram-bot

然后运行脚本:

nohup python3 bot.py &

就可以脱离终端后台运行 Bot 了。你也可以用 screensystemd 管理这个服务。


方案 B:使用 GCP Cloud Run + Docker(适合短连接 API Bot)

Cloud Run 是 GCP 的容器服务,按请求计费,没有用户访问时不收费。

步骤简要:
  1. 写一个 Dockerfile 容器化你的 Bot;

  2. 构建镜像并推送到 Google Container Registry;

  3. 在 Cloud Run 上部署容器,设置环境变量 TOKEN;

  4. 配置为自动拉取并启动服务。

这种方式更灵活,但更适合响应式的 API Bot,比如翻译助手、AI 回复 Bot。


我的 Bot 成本控制秘诀

部署完成后,我做了几件事来控制成本:

  • 使用 e2-micro:每月免费运行 730 小时,完全够用;

  • 日志关闭 Stackdriver,避免写日志产生费用;

  • 关闭 Cloud NAT/外部 IP 流量计费;

  • 在 nice cloud 平台获取账号,免实名+免信用卡+享受官方折扣价不但省事,还比自己注册便宜

目前我每月实际花费不到 0.1 美元,性能稳定,全球都能访问


常见问题(FAQ)

Q1:我能不用信用卡就用上 GCP 吗?
可以。我就是用 nice cloud 的方式注册,完全不需要绑卡。

Q2:Bot 会不会因为没有请求而被 GCP 自动关停?
不会,使用 GCP VM 部署是长驻内存的,只要你用 nohupsystemd 管理,它会一直运行。

Q3:e2-micro 实例性能够用吗?
我的 Bot 每天响应几百条消息,毫无压力。如果你是简单任务型 Bot,这配置完全够。

Q4:我可以让 Bot 接收 Webhook 吗?
可以,但需要绑定公网 IP + HTTPS 域名。建议用 polling 模式开始,稳定后再考虑 Webhook。

Q5:Bot 掉线了怎么办?
使用 systemd 启动脚本可以实现自动重启。Cloud Run 也有自动重启机制。

Q6:可以同时部署多个 Bot 吗?
当然。我自己就部署了四个 Bot,用不同 Token 启动,分别监听不同功能。


总结:Telegram Bot + GCP,是低成本高稳定的完美组合

如果你像我一样,希望做一个长期稳定运行的 Telegram Bot,又不想被实名、信用卡、复杂配置困住,那这套方案就是你要找的。

我总结下最佳路径:

  1. 通过 nice cloud 获取 GCP 账号:省掉实名验证和绑卡;

  2. 创建 e2-micro 实例部署 Bot:全天候运行 0 成本;

  3. 使用 python-telegram-bot 开发逻辑:功能全,社区活跃;

  4. 结合 nohup/systemd 保持运行

  5. 根据需求优化 CDN、Webhook、自动备份等拓展模块

我亲测这套系统已经连续跑了 3 个月,0 掉线,0 费用,完美匹配我的开发习惯和预算预期。如果你也想上手试试,建议从最小配置开始,稳扎稳打,快速上线。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐