You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure上部署基于Pyrogram的Python Telegram机器人?

在Azure部署Pyrogram Telegram机器人的正确步骤

一、准备工作

  • 确保你有Azure账号,以及Telegram提供的api_id、api_hash(从my.telegram.org获取)和bot_token(从@BotFather获取)。
  • 修改机器人代码,从环境变量读取凭证(避免硬编码风险):
import os
from pyrogram import Client, filters

# 从环境变量加载Telegram凭证
api_id = int(os.getenv("TELEGRAM_API_ID"))
api_hash = os.getenv("TELEGRAM_API_HASH")
bot_token = os.getenv("TELEGRAM_BOT_TOKEN")

app = Client("abc_bot", api_id=api_id, api_hash=api_hash, bot_token=bot_token)

@app.on_message(filters.command("start"))
def start_command(client, message):
    message.reply_text("Hello!")

app.run()
  • 创建requirements.txt文件,明确项目依赖:
pyrogram[tgcrypto]>=2.0

二、推荐部署方案:Azure App Service(Web Apps)

这是适配Python控制台程序的轻量部署方式,操作步骤如下:

1. 创建Azure基础资源

可通过Azure CLI或Azure Portal操作,以下是CLI命令示例:

# 登录Azure账号
az login

# 创建资源组(替换为你的资源组名和目标区域)
az group create --name myBotResourceGroup --location eastus

# 创建App Service计划(B1为基础付费层,Linux环境更适配Python)
az appservice plan create --name myBotPlan --resource-group myBotResourceGroup --sku B1 --is-linux

# 创建Web App(替换为你的唯一App名称)
az webapp create --name myUniqueTelegramBot --resource-group myBotResourceGroup --plan myBotPlan --runtime "PYTHON|3.10"

2. 配置环境变量

将Telegram凭证设置为App Service的环境变量:

az webapp config appsettings set --name myUniqueTelegramBot --resource-group myBotResourceGroup --settings TELEGRAM_API_ID=你的api_id TELEGRAM_API_HASH=你的api_hash TELEGRAM_BOT_TOKEN=你的bot_token

3. 设置启动命令

由于机器人是长运行的控制台程序,需要覆盖App Service默认的Web服务启动逻辑:

az webapp config set --name myUniqueTelegramBot --resource-group myBotResourceGroup --startup-file "python main.py"

4. 开启Always On

防止App Service因长时间无请求休眠导致机器人停止:

az webapp config set --name myUniqueTelegramBot --resource-group myBotResourceGroup --always-on true

5. 部署代码

进入本地项目目录(包含main.py和requirements.txt),执行以下命令完成部署:

az webapp up --name myUniqueTelegramBot --resource-group myBotResourceGroup --sku B1

三、备选方案:Azure Container Apps

如果需要自定义运行环境,可采用容器部署:

1. 创建Dockerfile

FROM python:3.10-slim

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY main.py .

# 推荐部署后通过Azure设置环境变量,避免硬编码凭证
CMD ["python", "main.py"]

2. 构建并部署镜像

按照Azure文档完成镜像构建、推送至Azure Container Registry,再部署到Container Apps并配置对应环境变量即可。

四、常见问题排查

  • 机器人启动失败:查看App Service的日志流(Portal → App Service → 日志流),排查依赖安装错误、凭证错误或网络连接问题。
  • 机器人无响应:确认Always On已开启,且启动命令正确设置为python main.py。
  • 依赖安装失败:确保requirements.txt中包含pyrogram[tgcrypto],遗漏tgcrypto会导致连接性能或稳定性问题。

内容的提问来源于stack exchange,提问作者Yeshpal Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 06:32:48