如何通过Azure Event Grid捕获租户内所有SP列表更新事件?
目前通过Graph合作伙伴主题对接Azure Event Grid时,确实无法直接通过通配符或模糊路径实现全租户列表事件的捕获,不过可以通过以下两种方式达成需求:
1. 租户级路径订阅(限特定事件类型)
对于Microsoft.SharePoint.ListCreated这类租户范围的事件,可直接使用根路径/tenants/{tenant-id}创建订阅,以此捕获租户内所有新建列表的事件。但该方式仅支持部分事件类型,无法覆盖列表更新、删除等操作。
2. 批量动态创建列表级订阅
通过Graph API遍历租户内所有站点与列表,为每个列表单独创建Event Grid订阅:
- 调用
GET /sites接口获取租户下所有站点 - 针对每个站点,调用
GET /sites/{site-id}/lists接口获取该站点内的所有列表 - 循环执行订阅创建操作,将资源路径设为
/sites/{site-id}/lists/{list-id} - 可搭配Azure Logic Apps或Azure Functions定期执行上述流程,确保新增站点和列表能被自动纳入订阅范围
注意事项
- 批量订阅会占用Event Grid的订阅配额,默认租户级配额为1000个,需根据实际数量评估
- 遍历站点和列表时需添加分页逻辑,避免因数据量过大导致API请求超时
内容的提问来源于stack exchange,提问作者J James
相关产品推荐
相关产品推荐

