如何将Azure Event Grid订阅关联至其他订阅下的独立Event Grid主题
你不需要新增额外中间逻辑就可以实现跨订阅的Event Grid主题间直接投递,你遇到的报错是因为选了错误的端点配置方式。
报错原因说明
- 第一次的Unauthorized错误:你选择了Web Hook作为投递端点,直接填入目标Event Grid主题的发布地址,但Event Grid的主题发布接口有严格的请求格式和权限校验规则,普通Web Hook投递的请求不满足要求,直接被权限拦截。
- 第二次的BadRequest错误:手动添加
aeg-sas-key请求头的方式不符合Event Grid跨主题投递的规范,不仅无法通过校验,还会导致请求参数和系统自动生成的参数冲突,触发格式错误。
正确配置方法
- 先配置权限:在目标Event Grid主题的访问控制(IAM)页面,给源Event Grid订阅使用的身份(建议用Event Grid服务主体,或者你创建订阅的操作账号)授予
Event Grid Data Sender角色,保存后等待权限生效。 - 创建源端订阅:回到源Event Grid主题的「事件订阅」创建页面,端点类型不要选择Web Hook,在下拉列表中选择「事件网格主题」。
- 选择目标资源:在端点配置面板中,切换到目标主题所在的Azure订阅,选中对应的Event Grid主题,完成剩余订阅配置后提交即可。
补充说明
如果两个订阅归属同一个Azure AD租户,上述配置完成后即可正常投递事件,无需额外开发逻辑。如果两个订阅归属不同Azure AD租户,需要先完成租户间的身份信任配置后再执行上述操作。
内容的提问来源于stack exchange,提问作者Bas van der Kruijssen
相关产品推荐
相关产品推荐

