在Azure的Python服务总线SDK中,如何查询名称空间的共享访问策略?

问题描述

我正在使用Python 3.8和Azure的服务总线SDK(azure-servicebus == 0.50.3)。目前,我可以使用以下代码获取名称空间中特定主题的共享访问策略规则(和键/值)

from azure.mgmt.servicebus import ServiceBusManagementClient
...
    self._sb_client = ServiceBusManagementClient(credential, subscription)
    ...
        rule = self._sb_client.topics.list_keys(
            self._resource_group_name,            self._namespace,            self._topic_name,            SB_SAS_POLICY_LISTEN
        )

如何使逻辑更具通用性,以便可以在名称空间级别查询策略?我们有一个根共享访问策略,我想看看是否有一种编程方式来获得与上述类似的规则。我尝试排除topic参数,但是我无法使用它。

解决方法

啊哈。看来,您正在使用azure-mgmt-servicebus作为您要利用的工具,这确实是对的,并且具有您正在寻找的功能:

在命名空间和给定主题上存在类似的list_keys方法,可以通过client.namespaces.list_keys(进行调用。

如果我误解了或者不清楚其中的任何一个,请不要犹豫。