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

Azure Event Grid未将失败事件死信至配置存储容器求助

Azure Event Grid事件未死信至存储容器问题排查与解决

问题概述

配置Azure Event Grid将发布失败的事件死信至存储容器abcaccount/deadletters,但当Service Bus Topictest-topic被删除后,Blob创建事件在达到10次重试后被丢弃,未进入死信容器,诊断日志显示NotFound(传递端点未找到)错误。

排查要点

  • 死信存储权限验证
    确认Event Grid具备向abcaccount的deadletters容器写入数据的权限:

    • 若使用系统分配身份,需为Event Grid系统身份添加存储Blob数据参与者角色,作用域覆盖目标存储账户或deadletters容器。
    • 若使用连接字符串,需确保连接字符串拥有Write权限,且未过期。
  • 死信配置正确性检查

    • 核对事件订阅blob-created-event的死信设置:存储账户名称abcaccount、容器名deadletters需完全匹配(存储容器名区分大小写,仅允许小写字母、数字和短横线)。
    • 确认deadletters容器已创建,且存储账户未设置防火墙/私有端点规则阻止Event Grid访问(若启用防火墙,需勾选“允许受信任的Azure服务访问此存储账户”)。
  • 重试与死信触发逻辑确认

    • 检查事件订阅的重试策略:确认最大重试次数(10次)、事件TTL配置正确。注意:NotFound(404)属于默认不可恢复错误,Event Grid可能不会执行全部10次重试,而是直接触发死信流程。若此时死信配置异常,事件会被丢弃。
    • 查看诊断日志的事件生命周期轨迹,确认事件是否触发死信流程,是否存在死信写入失败的日志条目。

解决方案

  1. 修复存储权限

    • 进入Azure门户,打开abcaccount存储账户,导航至访问控制(IAM)。
    • 添加角色分配:选择角色为存储Blob数据参与者,成员类型选“Azure AD用户、组或服务主体”,搜索并选择Azure Event Grid(系统身份),完成分配。
  2. 验证死信配置

    • 打开事件订阅blob-created-event,进入死信设置页,确认存储账户、容器名无误,身份验证方式(身份/连接字符串)配置正确。
    • 检查deadletters容器状态,确保容器未被删除或设置特殊权限。
  3. 调整错误重试策略(可选)
    若需让Event Grid对404错误执行重试,可在事件订阅的重试策略中配置自定义规则,将404状态码加入允许重试的列表。但需注意,针对已删除的Service Bus Topic,重试无法解决根本问题,仅能确保死信流程被触发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 01:38:23