gpt4 book ai didi

python - 如何在不使用 Flask 的情况下将 Python Telegram Bot 部署到 Azure?

转载 作者:行者123 更新时间:2023-12-03 04:00:24 25 4
gpt4 key购买 nike

我使用 Python 创建了一个 Telegram 机器人,代码如下:

TOKEN = BOT TOKEN

# deploy
def run(updater):
PORT = int(os.environ.get('PORT', '8443'))
updater.start_webhook(listen="0.0.0.0",
port=PORT,
url_path=TOKEN)
updater.bot.set_webhook("Azure WEB APP URL".format(TOKEN))


def start_handler(bot, update):
do something

def callback_func(bot, job):
do something

def trigger_callback(bot, update, job_queue):
logger.info("User {} trigger bot".format(update.effective_user["id"]))
bot.send_message(chat_id=update.message.chat_id, text='Starting!')
job_queue.run_repeating(callback_sql, 600, context=update.message.chat_id)


def stop_callback(bot, update, job_queue):
logger.info("User {} stop bot".format(update.effective_user["id"]))
bot.send_message(chat_id=update.message.chat_id,
text='Stoped!')
job_queue.stop()


if __name__ == '__main__':
logger.info("Starting bot")
updater = Updater(TOKEN)

updater.dispatcher.add_handler(CommandHandler('start', start_handler))
updater.dispatcher.add_handler(CommandHandler('trigger', trigger_callback, pass_job_queue=True))
updater.dispatcher.add_handler(CommandHandler('stop', stop_callback, pass_job_queue=True))

run(updater)


我已经在本地测试了机器人,它运行完美。那么现在我怎样才能将它部署到Azure云呢???谢谢大家的帮助!!!

我看到了有关Azure Bot Service的介绍,但不知道该怎么做!

最佳答案

实际上很简单:

安装azure cli ,然后在 Python 应用程序的根目录中创建一个 requirements.txt 文件,其中包含您需要的库。例如:

python-telegram-bot>=13.3,<=13.3

根据您的操作系统打开 Powershell 或 Bash,然后运行

az webapp up -n <app-name> -g <rg-name> --sku <your-sku> --location <your-location>

一些注意事项:

  1. 将主文件命名为 app.py,以便 Azure 自动运行它
  2. 配置 -> 常规设置中的应用服务上配置始终开启。这将始终保持机器人运行。否则,Azure 会在空闲时将其关闭,仅在请求网站时重新启动。由于您的机器人在拉动模式下工作,除非您手动执行,否则它永远不会再次重新启动,因此您需要始终开启功能。您需要 B1 或应用服务计划或更好的计划,免费计划不支持 Always On。

关于python - 如何在不使用 Flask 的情况下将 Python Telegram Bot 部署到 Azure?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62653030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com