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

Azure CallRecords变更通知的生命周期通知无法触发问题求助

排查步骤

1. 先修正拼写与路由匹配问题

你提交的订阅创建JSON参数存在明显拼写错误,先确认与实际部署的Azure Function路由完全一致:

  • 你填写的notificationUrl路径为notificfation(多写了1个f,正确拼写应为notification)
  • 你填写的lifecycleNotificationUrl路径为lifecylcenotificfation(字母顺序错误、多写了1个f,正确拼写应为lifecycleNotification)
    此外注意:lifecycleNotificationUrl在订阅创建时会单独走一次有效性校验,哪怕订阅整体创建成功,若该地址校验失败,生命周期通知通道也不会激活。

2. 校验权限与订阅类型

callRecord类订阅的生命周期通知仅支持应用权限场景,需确认:

  • 应用注册已申请CallRecords.Read.All应用权限且已完成管理员同意
  • 你创建的是应用权限类型订阅,而非用户委托权限订阅

3. 确认触发场景符合规则

你测试的部分场景本身不会触发生命周期通知,符合条件的触发逻辑如下:

  • 订阅过期通知:仅在订阅到期前3天、1天、6小时三个时间点推送subscriptionRemoved类型通知,完全过期后不会再推送,若你设置的过期时间距创建时间不足6小时,不会触发该类通知
  • 通知推送失败通知:仅当Graph连续4次推送普通callRecord通知全部失败,每次重试间隔15分钟,累计失败达到阈值后才会推送missed类型生命周期通知,仅阻断几小时大概率未达到触发阈值
  • 删除应用注册、删除密钥、移除API权限这类操作不会主动触发通知,仅当Graph下一次尝试推送通知时校验身份失败,才会触发订阅删除类通知

4. 排查Azure Function入站请求

去Azure Function的监控面板筛选所有指向生命周期通知路径的入站请求,不管返回状态码是多少:

  • 确认没有WAF、IP限制规则拦截Microsoft Graph的出站IP段
  • 检查你的代码日志是否漏打通知内容:生命周期通知请求的query不会带validationToken,会直接走else分支,确认你是否正常打印了所有入站的body内容
  • 确认接口返回的HTTP状态码为200,若返回其他状态码,Graph会判定推送失败不再重试

5. 主动查询订阅状态

调用Graph API GET https://graph.microsoft.com/v1.0/subscriptions/{你的订阅ID},检查返回结果:

  • 确认lifecycleNotificationUrl字段值和你预期的地址完全一致
  • 确认订阅状态为enabled,expirationDateTime配置正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:24:00