在 Azure Eventhub 接收器中给出 "Encountered error while fetching the list of EventHub PartitionIds" 错误

In Azure Eventhub reciever giving "Encountered error while fetching the list of EventHub PartitionIds" error

我正尝试按照教程实现接收器部分

https://azure.microsoft.com/en-us/documentation/articles/event-hubs-java-ephjava-getstarted/

Failure while registering: com.microsoft.azure.eventprocessorhost.EPHConfigurationException: Encountered error while fetching the list of EventHub PartitionIds

我的 eventhub 中有 16 个分区。但是当我发送数据时我没有指定任何分区。我如何知道我的数据发送到哪个分区?我是否因为所有分区而收到上述错误?

确保您的消费者 sas 策略确实包括 "manage" 而不仅仅是 "listen"。 我想它必须具有管理权限才能列出分区。

理想情况下 - EPH 应该与 "Listen"-only Claims 一起使用。现在我们在 EventProcessorHost 客户端代码中有一个 bug,因此它需要 "Manage" 声明。我们正在努力。

错误 "Encountered error while fetching the list of EventHub PartitionIds" 是通用错误,在查询分区时在 PartitionManager 处抛出。您 运行 进入以下 catch 块中的异常之一。请指出完整性 (SEO) 和更快解决的内部异常。

catch(XPathExpressionException|ParserConfigurationException|IOException|InvalidKeyException|NoSuchAlgorithmException|URISyntaxException|SAXException exception)
{
    throw new EPHConfigurationException("Encountered error while fetching the list of EventHub PartitionIds", exception);
}

编辑:

此问题已在 0.7.7.

版本中修复

我在将 eventhub 与 ELK 堆栈集成时遇到了同样的错误。 为了解决这个问题,我发现在我的事件中心所在的事件中心命名空间的设置中,我必须允许访问我的 ELK 堆栈所在的 VNET。

这可以通过转到以下页面来完成:您的 EventHubNamespace > 设置 - 防火墙和虚拟网络。 允许从所有网络访问或添加您的特定 VNET、子网或 IP 范围(对于特定计算机)。

除了将消费者 sas 策略设置为管理之外,这应该可以解决 "Encountered error while fetching the list of EventHub PartitionIds" 错误。