【发布时间】:2018-11-26 11:33:34
【问题描述】:
我正在使用 Azure 中继混合连接处理程序测试 Azure 事件网格。它不适合我。
我可以看到正在发布到 Azure 事件网格的消息。到目前为止,一切都很好。
我已设置对事件网格主题的订阅,并将其配置为将事件发送到指定为具有混合连接终结点的 Azure 中继的处理程序。
使用混合连接处理程序查看订阅的指标,我看到以下遥测:
- 匹配事件
- 投递失败
- 过期事件
…但我没有看到 Delivery Succeeded 事件???
此外,连接到 Azure 中继的混合连接侦听器(只是一个简单的控制台应用程序)不会收到任何信息。我已经通过将一些测试消息直接发送到 Relay 来测试侦听器,并且效果很好。
合乎逻辑的结论是,发布到事件网格的事件可能没有传递到中继混合连接处理程序。但为什么?没有那么多参数,所以我不确定我做错了什么。配置它似乎相当简单。
我开始相信事件网格/混合连接方案目前不起作用。毕竟是在preview,所以这可以解释它。
我知道这里没什么可做的,但我希望其他人可能对此有一些经验?
问题仍然存在。这些问题似乎与从事件网格订阅传递到混合连接的 json 格式有关。
更新
我终于有时间更仔细地研究一下了。
我设置了Event Grid Tester,每次事件网格收到一条消息时,我都会在日志中看到这个错误:
HybridConnection: Message processing failed - Unable to cast object of type 'Newtonsoft.Json.Linq.JValue' to type 'Newtonsoft.Json.Linq.JObject'.
我仍然无法解决此问题,因为我无法控制消息。消息由 Azure 逻辑应用生成并使用事件网格连接器发送到事件网格。 Azure 逻辑应用程序中的事件网格连接器处于预览状态,这可能解释了我所看到的挑战。
【问题讨论】:
-
使用混合连接端点的订阅运行良好。我确实建议出于测试目的查看这个简单的 http 服务器/客户端实现,github.com/Azure/azure-relay/tree/master/samples/…
-
我认为问题可能是由 Logic App 引入的,产生了一些 json,从而在链条的下游造成了挑战。查看更新。
-
查看我的答案,其中使用 http POST 到混合连接 url 可以帮助您与混合连接订阅者。
标签: azure azure-eventgrid azure-hybrid-connections