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

Python版Azure Function Blob Trigger运行卡滞及__init__.py疑问求助

解决Azure Functions Python Blob Trigger卡主问题及__init__.py说明

一、init.py的明确要求

Python版Azure Functions必须要有__init__.py,而且要放在包含function.json的函数目录里。这是官方明确规定的,不用纠结论坛的不同说法——没有这个文件,函数宿主根本识别不了你的Python函数。

二、解决"Host lock lease acquired"卡主问题

这条日志说明函数宿主已经启动,但Blob Trigger没正常触发,按以下步骤排查:

  • 检查存储账户连接字符串:确认local.settings.json里的AzureWebJobsStorage配置正确。本地开发用存储模拟器的话,填UseDevelopmentStorage=true;用云存储账户就复制完整的连接字符串,别填错账户名或密钥。
  • 核对Blob Trigger路径:打开function.json,检查path字段的容器名、路径格式是否正确,比如要监听test-container下的文件,就写test-container/{name}。
  • 确认存储模拟器状态:如果用本地模拟器,先确保它已经启动——要么双击模拟器exe,要么在命令行跑az storage emulator start。
  • 验证函数代码位置:你的模板代码必须放在__init__.py里,标准模板代码应该是这样:
import logging
import azure.functions as func

def main(myblob: func.InputStream):
    logging.info(f"Python blob trigger function processed blob \n"
                 f"Name: {myblob.name}\n"
                 f"Blob Size: {myblob.length} bytes")
  • 检查host.json配置:默认的host.json别乱改,确保包含扩展包配置,示例如下:
{
  "version": "2.0",
  "logging": {
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "excludedTypes": "Request"
      }
    }
  },
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle",
    "version": "[4.*, 5.0.0)"
  }
}
  • 重启函数宿主:有时候缓存会搞事,停止函数后重新启动,或者删掉项目根目录下的.azurefunctions文件夹再运行。

三、正确的文件夹结构参考

本地开发的Python Azure Functions结构应该是这样:

项目根目录
├── .azurefunctions/
├── 你的BlobTrigger函数文件夹/
│   ├── __init__.py
│   └── function.json
├── local.settings.json
└── host.json

如果你的函数文件夹里缺__init__.py,直接创建文件并把模板代码放进去就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 11:08:23