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

Python Azure Function Blob Trigger获取触发文件名及报错解决

解决方案
  • 修正代码语法错误,确保函数参数与function.json配置完全匹配
  • 通过func.InputStream对象的name属性获取Blob文件名,无需额外声明name参数

错误原因

报错FunctionLoadError的核心原因有两点:

  1. 代码中blob = {myblob.name}的语法错误(用大括号包裹表达式会创建集合,导致函数解析逻辑误判)
  2. function.json中path字段的{name}是Blob路径的绑定过滤表达式,不需要在Python函数参数中声明该参数,错误的语法触发了参数不匹配的检测

正确代码实现

import azure.functions as func

def main(myblob: func.InputStream):
    # 获取Blob的完整存储路径,例如:data-upload-pdf-test/bank_data.pdf
    full_blob_path = myblob.name
    # 提取纯文件名(如bank_data.pdf)
    file_name = full_blob_path.split("/")[-1]
    
    # 后续可添加PDF内容扫描逻辑
    print(f"触发扫描的PDF文件:{file_name}")

确认function.json配置

你的现有配置是正确的,无需修改:

{
"scriptFile": "__init__.py",
"bindings": [
    {
        "name": "myblob",
        "type": "blobTrigger",
        "direction": "in",
        "path": "data-upload-pdf-test/{name}.pdf",
        "connection": "AzureWebJobsStorage",
        "containerName": "data-upload-pdf-test"
    }
  ]
}

关键说明

  • func.InputStream类型的参数自带name属性,返回Blob在存储容器中的完整路径
  • 若仅需文件名,通过字符串分割截取路径最后一段即可
  • path中的{name}仅用于匹配容器中.pdf后缀的文件,与函数参数无关,不需要在Python代码中声明

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 09:00:56