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

Python开发WebJob/Function App所需文件结构及初始化代码咨询

Python 版 Azure Function App 标准文件结构与初始化代码

你可以通过 Azure Functions Core Tools 执行命令 func init 项目名 --python 直接生成全套基础模板文件,标准项目结构如下:

MyFunctionProj/
├── .funcignore                # 发布时忽略的文件配置,逻辑和.gitignore一致
├── local.settings.json        # 本地开发专属配置,存储连接字符串、测试用环境变量,不会被发布到云端
├── requirements.txt           # 项目依赖声明
├── host.json                  # 函数应用全局配置,控制所有函数的运行时、日志、扩展规则
└── HttpTrigger1/              # 单个函数的独立目录,每个函数单独对应一个文件夹
    ├── function.json          # 当前函数的触发器、输入输出绑定配置
    └── __init__.py            # 函数业务逻辑入口代码

各关键文件的基础初始化内容如下:

  • requirements.txt 基础依赖配置
azure-functions>=1.17.0
# 其他业务依赖比如 requests、pandas 等按需补充即可
  • host.json 全局基础配置
{
  "version": "2.0",
  "logging": {
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "excludedTypes": "Request"
      }
    }
  },
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle",
    "version": "[4.*, 5.0.0)"
  }
}
  • HTTP触发类函数的function.json配置示例
{
  "scriptFile": "__init__.py",
  "bindings": [
    {
      "authLevel": "anonymous",
      "type": "httpTrigger",
      "direction": "in",
      "name": "req",
      "methods": ["get", "post"]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "$return"
    }
  ]
}
  • 对应__init__.py初始化代码
import azure.functions as func
import logging

app = func.FunctionApp()

@app.function_name(name="HttpTrigger1")
@app.route(route="hello")
def test_function(req: func.HttpRequest) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request.')

    name = req.params.get('name')
    if not name:
        try:
            req_body = req.get_json()
        except ValueError:
            pass
        else:
            name = req_body.get('name')

    if name:
        return func.HttpResponse(f"Hello, {name}. This HTTP triggered function executed successfully.")
    else:
        return func.HttpResponse(
             "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.",
             status_code=200
        )
Python 版 Azure WebJob 标准文件结构与初始化代码

WebJob 分为连续运行、定时触发两种类型,Python 版标准项目结构如下:

MyWebJob/
├── run.py                     # 固定入口执行文件,平台默认会优先执行该文件
├── requirements.txt           # 依赖声明
├── settings.job               # 可选配置,用于指定运行模式、调度规则
└── .webjobignore              # 发布时忽略的文件配置

各关键文件的基础初始化内容如下:

  • settings.job 配置示例,定时触发类WebJob需要配置CRON表达式
{
  "is_singleton": true,  # 多实例部署时仅运行一个实例,避免重复执行
  "schedule": "0 */5 * * * *"  # CRON表达式,示例为每5分钟执行一次,连续运行类WebJob不需要该字段
}
  • run.py 基础业务代码示例
import logging
from datetime import datetime

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

def main():
    logger.info(f"WebJob 启动执行,当前时间:{datetime.now()}")
    # 此处编写业务逻辑,比如处理队列消息、定时清理数据、批量计算等
    logger.info("WebJob 执行完成")

if __name__ == "__main__":
    main()
  • 自定义启动脚本run.cmd(可选),如果需要自定义依赖安装、执行参数可以添加该文件
pip install -r requirements.txt
python run.py

注意事项

  • 本地调试 Function App 可执行func start命令启动本地服务,WebJob 直接执行python run.py即可测试逻辑
  • 部署到云端前请确认对应服务的Python运行时版本和本地开发版本一致,避免依赖兼容问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:09:00