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

如何在Linux环境的Azure WebApp中定时运行Python后台任务

Azure Linux WebApp 定时运行Python脚本解决方案

方法一:使用Azure WebJobs(官方推荐)

这是Azure WebApp官方适配的后台任务方案,能直接复用WebApp的Python环境与依赖,适配Linux场景。

  • 创建并配置WebJob

    1. 打包脚本与依赖:将Python脚本和包含pysftp、pandas的requirements.txt放在同一目录,压缩为zip包(确保脚本在zip根目录,无嵌套文件夹)。
    2. 登录Azure门户进入目标WebApp,左侧菜单找到部署中心→WebJobs,点击添加。
    3. 填写配置项:
      • 名称:自定义(如data-transform-task)
      • 上传文件:选择打包好的zip包
      • 类型:定时触发
      • 触发器:选CRON表达式,输入0 */4 * * *(每4小时执行一次)
      • 运行模式:连续
  • 处理依赖安装
    WebJobs会自动读取requirements.txt安装依赖,若安装失败,可通过WebApp的**高级工具(Kudu)**打开SSH终端,进入WebJob目录手动执行:

    python -m pip install -r requirements.txt
    
  • 日志排查
    在WebJobs列表点击对应任务,进入日志标签页查看执行记录,定位问题。

方法二:修正crontab配置(解决此前失败问题)

Linux WebApp默认禁用crontab,需先开启,同时注意路径与环境变量问题:

  • 启用crontab支持

    1. 在WebApp的配置→应用设置中,添加WEBSITE_ENABLE_CRONJOBS,值设为true,保存后重启WebApp。
    2. 通过Kudu的SSH终端登录,执行crontab -e编辑定时任务。
  • 编写正确的定时规则
    输入以下内容(替换为你的脚本绝对路径和Python环境路径):

    0 */4 * * * /usr/bin/python3 /home/site/wwwroot/your_transform_script.py >> /home/site/wwwroot/cron_exec_log.log 2>&1
    

    注意:

    • 用which python3在SSH终端获取WebApp环境的Python绝对路径。
    • 脚本必须用绝对路径,避免相对路径导致找不到文件。
    • 追加日志输出,方便排查执行异常。
  • 验证配置
    执行crontab -l确认任务已添加,到触发时间后查看cron_exec_log.log检查执行状态。

方法三:使用Azure Functions(独立任务场景)

若脚本无需依赖WebApp环境,可单独创建Azure Functions实现定时触发:

  • 创建定时触发的Python函数,CRON表达式设为0 */4 * * *。
  • 在函数的requirements.txt中添加pysftp、pandas等依赖。
  • 将数据转换逻辑迁移到函数的__init__.py中。
  • 函数会自动按定时执行,日志可在Azure门户的函数监控模块查看。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 20:17:28