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

如何获取Event Grid Partner Topic端点及.NET Core应用连接方法

问题

我想用.NET Core控制台应用读取Event Grid中的事件,按照官方文档操作时,发现文档里的Event Grid端点说明只针对常规Topic,不适用Partner Topic。我创建了MS Graph订阅,当Entra Groups发生变更时触发事件,通过以下az cli命令查询名为yourPartnerTopic的Partner Topic详情:

az eventgrid partner topic show --ids /subscriptions/[mysubscription]/resourceGroups/DefaultResourceGroup-WIDGETS/providers/Microsoft.EventGrid/partnerTopics/yourPartnerTopic

返回结果如下:

{
  "activationState": "Activated",
  "eventTypeInfo": null,
  "expirationTimeIfNotActivatedUtc": null,
  "id": "/subscriptions/mysubscriptionid/resourceGroups/DefaultResourceGroup-WDIGETS/providers/Microsoft.EventGrid/partnerTopics/yourPartnerTopic",
  "identity": null,
  "location": "canadacentral",
  "messageForActivation": null,
  "name": "yourPartnerTopic",
  "partnerRegistrationImmutableId": "123123-707c-436d-bbbb-123123",
  "partnerTopicFriendlyDescription": null,
  "provisioningState": "Succeeded",
  "resourceGroup": "DefaultResourceGroup-WIDGETS",
  "source": "tenant_mytenantId",
  "systemData": null,
  "tags": null,
  "type": "Microsoft.EventGrid/partnerTopics"
}

结果里没有endpoint字段,Azure Portal的该Topic概览页也找不到端点。想咨询:是否可以通过.NET应用连接Partner Topic,还是仅支持自定义Topic?求相关建议。

解答

  • Partner Topic无法像自定义Topic那样直接通过SDK主动连接读取事件,因为它的事件流转是推送模式:由事件源(这里是MS Graph)将事件推送到你配置的事件处理端点,而非提供供主动拉取的端点。
  • 你的场景下,正确的处理方式是对接创建MS Graph订阅时指定的事件处理端点,而非Partner Topic本身:
    • 如果端点是Azure Storage Queue:使用Azure.Storage.Queues SDK在控制台应用中拉取队列里的事件消息
    • 如果端点是Webhook:需要将控制台应用改造为ASP.NET Core Web服务(比如Minimal API),接收事件推送的POST请求
    • 如果端点是Azure Function:可以直接在Function中处理事件,或者从Function绑定的存储介质中读取事件
  • 补充:Partner Topic的作用是作为事件源与你的处理端点之间的中转桥梁,本身不对外暴露可连接的端点,这是它和自定义Topic的核心区别,你之前参考的自定义Topic文档属于主动拉取模式,不适用于Partner Topic的推送场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 07:20:16