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

Azure FunctionApp发布后函数未列出问题求助(Python v2模型)

Azure Function Python v2模型发布后无函数显示的排查方案

问题概述

本地运行正常的Python v2模型FunctionApp,通过func azure functionapp publish发布到Azure后,终端输出部署成功但未列出任何函数,Azure门户的「函数」栏目也为空。

排查步骤

1. 确认host.json配置符合v2模型要求

Python v2模型需要host.json中正确配置运行时和扩展包,示例配置:

{
  "version": "2.0",
  "logging": {
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "excludedTypes": "Request"
      }
    }
  },
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle",
    "version": "[4.*, 5.0.0)"
  },
  "pythonWorker": {
    "runtimeVersion": "3.10" // 需与本地使用的Python版本一致
  }
}
  • 确保extensionBundle版本在4.x以上(适配Functions v4)
  • pythonWorker.runtimeVersion需与本地开发环境的Python版本匹配,且Azure Function支持该版本(目前支持3.8/3.9/3.10/3.11)

2. 检查函数装饰器是否为v2模型格式

Python v2模型使用基于实例的装饰器,而非v1的全局装饰器,确保function_app.py中的函数定义符合以下格式:

import azure.functions as func

# 必须创建func.FunctionApp实例
app = func.FunctionApp()

@app.function_name(name="MyHttpTrigger")
@app.route(route="hello", auth_level=func.AuthLevel.ANONYMOUS)
def http_trigger(req: func.HttpRequest) -> func.HttpResponse:
    return func.HttpResponse("Hello World")

@app.function_name(name="MyBlobTrigger")
@app.blob_trigger(arg_name="myblob", path="my-container/{name}", connection="AzureWebJobsStorage")
def blob_trigger(myblob: func.InputStream):
    print(f"Blob triggered: {myblob.name}")
  • 必须先初始化app = func.FunctionApp()
  • 所有触发器装饰器需通过app.xxx_trigger调用,而非直接使用@xxx_trigger

3. 验证部署包包含必要文件

使用--dry-run参数预览将要上传的文件,确认核心文件未被排除:

func azure functionapp publish <my_project_name> --dry-run

检查输出列表中是否包含:

  • function_app.py
  • 所有my_code_x.py辅助模块
  • requirements.txt
  • host.json

若文件缺失,检查.funcignore是否误排除了上述文件,默认.funcignore应包含.venv/、.vscode/等,但不应排除业务代码文件。

4. 查看远程构建与启动日志

部署成功不代表函数能正常加载,需查看详细日志定位问题:

  • 部署日志:Azure门户 → 目标FunctionApp → 部署中心 → 日志,检查是否有依赖安装失败、文件解压异常等报错
  • 宿主启动日志:Azure门户 → 目标FunctionApp → 监控 → 日志,或访问Kudu站点(https://<functionapp-name>.scm.azurewebsites.net)→ 工具 → 日志流,查看函数宿主启动时的错误信息,常见问题包括:
    • 依赖包版本冲突
    • 辅助模块导入失败
    • 连接字符串配置缺失导致触发器绑定失败

5. 确认Azure Function的运行时配置

在Azure门户的FunctionApp → 配置 → 常规设置中:

  • 确认运行时堆栈为Python,版本与本地一致
  • 确认Functions版本为4.x

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 20:33:27