azure 获取错误响应:404使用EventProcessorClient时指定的blob不存在

6mw9ycah  于 2023-06-24  发布在  其他
关注(0)|答案(1)|浏览(116)

我刚刚更新了我们的EventHub事件读取从EventHubConsumerClient.ReadEventsAsyncEventProcessorClient根据ReadEventsAsync方法下的备注。
EventProcessorClient使用检查点,这需要Azure存储容器来存储Blob。尽管所有进入EventHub的消息(据我所知)都在被处理,但客户端在每次启动时都会抛出Error response [response-id] 404 The specified blob does not exist.警告。
在调用_logger.LogInformation之前的下面的代码片段中抛出警告:

public async Task StartAsync(CancellationToken cancellationToken)
    {
        try
        {
            EventProcessorClient processorClient = _processorClient.Value
                ?? throw new NullReferenceException(nameof(_processorClient.Value));

            processorClient.ProcessEventAsync += _deviceToCloudMessageHandler.EventHandler;
            processorClient.ProcessErrorAsync += _deviceToCloudMessageHandler.ErrorHandler;

            await processorClient.StartProcessingAsync(cancellationToken);

            _logger.LogInformation("EventProcessorClient started.");
            _healthCheckReporter.Healthy();
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "Failed to start EventProcessorClient.");
            _healthCheckReporter.Unhealthy("Failed to start EventProcessorClient.", ex);
        }
    }

在EventProcessorClient也抛出并捕获异常之后:An exception occurred while receiving events for Event Hub. Error Message: 'At least one receiver for the endpoint is created with epoch of '0', and so non-epoch receiver is not allowed. Either reconnect with a higher epoch, or make sure all epoch receivers are closed or disconnected.我不确定这两个是如何交织在一起的,因为我确信我已经看到了blob容器警告,而没有异常跟随它。
我们使用Azure IoT Hub内置端点,使用的消费者组为$Default。
一个新的容器和使用EventProcessorClient重新启动服务没有帮助。我不知道客户端是如何找到无处可寻的blob ID的,也不知道客户端在哪里寻找这些未找到的blob。这里所有其他与blob相关的问题通常都与客户端处理的头或设置有关,而不是向我公开。我需要帮助弄清楚为什么每次服务启动时都会抛出警告,尽管一切似乎都在工作。谢谢你。

fxnxkyjh

fxnxkyjh1#

我能够通过按照下图中的函数和资源组创建事件网格。
您遇到的错误消息“Error response:404指定的blob不存在”,表明EventProcessorClient-无法找到它期望存在于用于检查点的Azure存储容器中的blob。

  • 我可以通过follow创建事件订阅。您可以参考此link获取事件中心。

  • 指标:

相关问题