首页 > 解决方案 > 如何在 AzureStorageCheckpointLeaseManager 类中提供容器的完整路径

问题描述

我正在使用 Azure python SDK 的 EPH (EventProcessorHost) 类来接收来自 eventthub 的事件。它实际上AzureStorageCheckpointLeaseManager用于存储帐户中的检查点和分区。但是我看不到可以在哪里写入存储帐户的完整路径。就像它直接在存储帐户中的指定容器内创建文件一样。我想给出容器内的完整路径。我在哪里可以这样做?

标签: pythonazureazure-eventhubazure-sdk-python

解决方案


这是我的研究:

AzureStorageCheckpointLeaseManager中,有一个参数storage_blob_prefix,应该用于设置 blob 前缀(表示检查点 blob 的目录)。但实际上它不起作用。

浏览源代码后azure_storage_checkpoint_manager.py,我可以看到storage_blob_prefix实际上分配给了consumer_group_directory,但consumer_group_directory从未用于创建检查点的 blob。相反,它只是直接在容器内创建 blob。

所以解决方法是我们可以修改azure_storage_checkpoint_manager.py, 通过使用lease_container_name + consumer_group_directory创建检查点 blob。我修改它并上传到github。按预期为检查点 blob 创建目录可以很好地工作。


推荐阅读