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

Azure Functions Event Grid触发器未触发问题咨询

Event Grid触发Azure Function授权逻辑

通过Azure门户GUI创建指向Azure Function的Event Grid事件订阅时,后台会自动完成两项授权配置:

  1. 为Event Grid服务主体分配目标Function的Microsoft.Web/sites/functions/action/invoke调用权限
  2. 自动获取并存储函数的触发器访问密钥到事件订阅配置中,无需手动填写
事件未触发常见排查点
  • 第一步:先确认事件投递链路状态

    进入Event Grid系统主题的「指标」页面,选择对应事件订阅,查看Delivery Success(投递成功)、Delivery Failed(投递失败)、Matched Events(匹配到的事件)三类指标:

    • 如果Matched Events为0:说明事件没有被事件订阅匹配到,问题出在Key Vault事件上报、或事件订阅的筛选规则配置
    • 如果Matched Events不为0但Delivery Failed有值:说明事件已经到Event Grid,但投递到Function失败,大概率是授权、网络、函数运行错误问题
    • 建议先给事件订阅配置死信队列,投递失败的事件会存入死信队列,可直接查看事件内容和失败原因
  • 第二步:授权相关排查

    • 确认函数的访问级别:查看函数function.json配置中的authLevel属性,必须为function或anonymous,设置为admin时Event Grid默认权限无法触发
    • 若后续重置过函数的主密钥/触发器专属密钥,需要重新编辑事件订阅,重新选择一次目标函数,后台会自动更新事件订阅中存储的旧密钥
    • 若函数配置了IP访问限制、VNet隔离,需要放开Azure Event Grid服务标签的访问权限,避免投递请求被网络策略拦截
  • 第三步:筛选规则排查

    确认事件订阅的筛选规则没有误过滤:

    • 事件类型是否准确勾选了Microsoft.KeyVault.SecretNewVersionCreated
    • 主题筛选、高级筛选是否存在错误的匹配规则,测试阶段可暂时关闭所有自定义筛选,验证基础链路是否连通
  • 第四步:函数运行状态排查

    进入函数的「监控」-「调用日志」页面,查看是否有调用记录:

    • 若有调用记录但日志无输出,说明函数运行报错,可修改代码增加空值判断避免异常:
      #r "Microsoft.Azure.EventGrid"
      using Microsoft.Azure.EventGrid.Models;
      
      public static void Run(EventGridEvent eventGridEvent, ILogger log)
      {
          log.LogInformation("Event received, event type: " + eventGridEvent.EventType);
          if(eventGridEvent.Data != null)
          {
              log.LogInformation(eventGridEvent.Data.ToString());
          }
      }
      
    • 若无调用记录,回到链路排查环节确认投递请求有没有到达函数运行环境
  • 第五步:Key Vault事件上报排查

    进入Key Vault的「活动日志」页面,筛选创建新Secret版本的操作记录,查看是否有事件上报到Event Grid的相关错误,确认Key Vault有权限向系统主题发送事件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 14:51:04