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

Azure中Blob上传触发EventGridTrigger函数配置求助

解决Blob上传触发Event Grid函数的后续配置步骤

你已经完成了函数端的基础配置和订阅的初步关联,接下来只需补充以下关键步骤,就能让Blob上传事件正确触发你的函数:

1. 完善Event Grid订阅的事件筛选设置

在存储账户的「Events」页面,进入你创建的订阅详情页:

  • 指定触发事件类型:在「事件类型」区域,勾选Blob存储分类下的BlobCreated事件(仅上传场景只需勾选这一项)
  • 添加筛选规则(可选):
    • 若只想触发特定容器的Blob上传,在「筛选器」中添加主题筛选器,输入容器路径,格式为/blobServices/default/containers/你的容器名称
    • 若需按文件类型筛选(比如仅触发.pdf文件),添加高级筛选器,选择data.url字段,运算符选Contains,值填入.pdf

2. 配置函数应用的权限

确保函数应用具备接收Event Grid事件的权限:

  • 进入函数应用的「身份标识」页面,启用系统分配的托管标识
  • 切换到存储账户的「访问控制(IAM)」页面,添加角色分配:
    • 角色选择「Event Grid数据接收者」
    • 成员类型选「托管标识」,并选中你的函数应用对应的系统标识

3. 验证触发效果

  • 手动上传一个Blob到目标存储容器
  • 进入函数应用的「监测」→「日志」页面,查看是否有Python EventGrid trigger processed an event的日志输出,出现该日志则说明触发成功
  • 若未触发,排查方向:
    • 确认订阅是否正确勾选BlobCreated事件类型
    • 检查存储账户与函数应用是否处于同一Azure区域(跨区域订阅可能存在限制)
    • 验证函数应用的系统标识是否已添加「Event Grid数据接收者」角色

你的函数配置参考

function.json:

{  
  "scriptFile": "__init__.py",  
  "bindings": [    
    {      
      "type": "eventGridTrigger",      
      "name": "event",      
      "direction": "in"    
    }  
  ]
}

init.py:

import json
import logging

import azure.functions as func


def main(event: func.EventGridEvent):
    result = json.dumps({
        'id': event.id,
        'data': event.get_json(),
        'topic': event.topic,
        'subject': event.subject,
        'event_type': event.event_type,
    })

    logging.info('Python EventGrid trigger processed an event: %s', result)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 21:01:05