在 Azure functions Python SDK 中,如何获取给定命名空间的主题数?
In the Azure functions Python SDK, how do I get the number of topics for a given namespace?
我正在使用 Python 3.8 和 azure-mgmt-servicebus= v.1.0.0。我想获取给定命名空间的主题数。我试过以下...
credential = ServicePrincipalCredentials(self._client_id, self._client_secret, tenant=self._tenant)
sb_client = ServiceBusManagementClient(credential, self._subscription)
...
topics = sb_client.topics.list_by_namespace(
resource_group_name=self._resource_group_name,
namespace_name=namespace
)
num_topics = 0
while topics.current_page:
num_topics += topics.current_page.count
topics.next
logging.info("num topics: %s", num_topics)
我的“num_topics”总是返回零,尽管事实上我已经验证了我的连接正在建立(我可以创建一个具有相同连接的主题)并且我可以看到很多主题在 Azure 门户中提供信息。我在想我没有正确使用 API 但我不确定哪里出了问题。如何获取给定命名空间的主题数?
如果您想获取给定服务总线命名空间的主题数,可以使用以下代码。
from azure.common.credentials import ServicePrincipalCredentials
from azure.mgmt.servicebus import ServiceBusManagementClient
subscription_id = "<subscription-id>"
rg_name = "<resource-group-name>"
tenant_id = "<tenant-id>"
client_id = "<client-id>"
client_secret = "<client-secret>"
credential = ServicePrincipalCredentials(client_id=client_id, secret=client_secret, tenant=tenant_id)
sb_client = ServiceBusManagementClient(credential, subscription_id)
topics = sb_client.topics.list_by_namespace(resource_group_name= rg_name, namespace_name= "servicebusname")
num_topics = 0
for topic in topics:
num_topics += 1
print(num_topics)
检查门户中的主题,结果正确:
更新:
如果不想使用循环,可以将 topics
转换为列表,然后使用 len()
函数。
from azure.common.credentials import ServicePrincipalCredentials
from azure.mgmt.servicebus import ServiceBusManagementClient
subscription_id = "<subscription-id>"
rg_name = "<resource-group-name>"
tenant_id = "<tenant-id>"
client_id = "<client-id>"
client_secret = "<client-secret>"
credential = ServicePrincipalCredentials(client_id=client_id, secret=client_secret, tenant=tenant_id)
sb_client = ServiceBusManagementClient(credential, subscription_id)
topics = sb_client.topics.list_by_namespace(resource_group_name= rg_name, namespace_name= "servicebusname")
testlist = list(topics)
print(len(testlist))
我正在使用 Python 3.8 和 azure-mgmt-servicebus= v.1.0.0。我想获取给定命名空间的主题数。我试过以下...
credential = ServicePrincipalCredentials(self._client_id, self._client_secret, tenant=self._tenant)
sb_client = ServiceBusManagementClient(credential, self._subscription)
...
topics = sb_client.topics.list_by_namespace(
resource_group_name=self._resource_group_name,
namespace_name=namespace
)
num_topics = 0
while topics.current_page:
num_topics += topics.current_page.count
topics.next
logging.info("num topics: %s", num_topics)
我的“num_topics”总是返回零,尽管事实上我已经验证了我的连接正在建立(我可以创建一个具有相同连接的主题)并且我可以看到很多主题在 Azure 门户中提供信息。我在想我没有正确使用 API 但我不确定哪里出了问题。如何获取给定命名空间的主题数?
如果您想获取给定服务总线命名空间的主题数,可以使用以下代码。
from azure.common.credentials import ServicePrincipalCredentials
from azure.mgmt.servicebus import ServiceBusManagementClient
subscription_id = "<subscription-id>"
rg_name = "<resource-group-name>"
tenant_id = "<tenant-id>"
client_id = "<client-id>"
client_secret = "<client-secret>"
credential = ServicePrincipalCredentials(client_id=client_id, secret=client_secret, tenant=tenant_id)
sb_client = ServiceBusManagementClient(credential, subscription_id)
topics = sb_client.topics.list_by_namespace(resource_group_name= rg_name, namespace_name= "servicebusname")
num_topics = 0
for topic in topics:
num_topics += 1
print(num_topics)
检查门户中的主题,结果正确:
更新:
如果不想使用循环,可以将 topics
转换为列表,然后使用 len()
函数。
from azure.common.credentials import ServicePrincipalCredentials
from azure.mgmt.servicebus import ServiceBusManagementClient
subscription_id = "<subscription-id>"
rg_name = "<resource-group-name>"
tenant_id = "<tenant-id>"
client_id = "<client-id>"
client_secret = "<client-secret>"
credential = ServicePrincipalCredentials(client_id=client_id, secret=client_secret, tenant=tenant_id)
sb_client = ServiceBusManagementClient(credential, subscription_id)
topics = sb_client.topics.list_by_namespace(resource_group_name= rg_name, namespace_name= "servicebusname")
testlist = list(topics)
print(len(testlist))