【Azure 服务总线】如何批量删除Azure Service Bus中的Topics(数量较多,需要过滤后批量删除)

简介: 【Azure 服务总线】如何批量删除Azure Service Bus中的Topics(数量较多,需要过滤后批量删除)

问题描述

Azure Service Bus 的门户操作页面上,是否可以批量删除其中的Topics呢?

 

问题解答

Azure Service Bus门户或Service Bus Explorer工具没有提供批量删除Topic的方法。但是可以自己写脚本删除,并且可以在删除的时候自定义过滤条件。

以Python举例:

第一步:在本地安装Python Service Bus SDK。

pip install azure-servicebus

第二步:参考Service Bus Topic 管理相关操作,结合 list_topics 和 delete_topic 方法删除满足要求的Topic

import os
from azure.servicebus.management import ServiceBusAdministrationClient
#CONNECTION_STR =  "Endpoint=sb://xxx.servicebus.chinacloudapi.cn/;SharedAccessKeyName=xxx;SharedAccessKey=xxxx"
CONNECTION_STR = os.environ['SERVICEBUS_CONNECTION_STR']
def delete_all_topic(servicebus_mgmt_client):
    print("-- Delete all the Topics")
    for topic_properties in servicebus_mgmt_client.list_topics():
        #print("delete Topic Name:", topic_properties.name)
        #根据Topic名称可以过滤是否需要删除
        servicebus_mgmt_client.delete_topic(topic_properties.name)
        print("Topic {} is deleted.".format(topic_properties.name))
    print("")
with ServiceBusAdministrationClient.from_connection_string(CONNECTION_STR) as servicebus_mgmt_client:
    delete_all_topic(servicebus_mgmt_client)

执行效果图:

 

参考资料

Service Bus Python sdk 安装:https://pypi.org/project/azure-servicebus/

Service Bus Topic 管理相关操作:https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/servicebus/azure-servicebus/samples/sync_samples/mgmt_topic.py

获取Service Bus 连接字符串:https://docs.azure.cn/zh-cn/service-bus-messaging/service-bus-quickstart-portal#get-the-connection-string

 

相关文章
|
5月前
|
Linux API 网络架构
【Azure 事件中心】通过 az rest --method get 如何获得Event Hub Entity 级的统计指标
【Azure 事件中心】通过 az rest --method get 如何获得Event Hub Entity 级的统计指标
|
5月前
|
缓存 API Windows
【服务总线 Azure Service Bus】Service Bus在使用预提取(prefetching)后出现Microsoft.Azure.ServiceBus.MessageLockLostException异常问题
【服务总线 Azure Service Bus】Service Bus在使用预提取(prefetching)后出现Microsoft.Azure.ServiceBus.MessageLockLostException异常问题
|
4月前
【Azure Service Bus】批量处理Service Bus Topic 中的死信消息(dead-lettered messages)
当然是有的。就是Service Bus Explorer工具,下载ZIP包解压或者安装版均可! 这个版本提供强大的 Service Bus 的管理功能。
|
5月前
|
存储 编解码 开发工具
【Azure媒体服务 Azure Media Service】Azure Media Service中Stream Endpoint 说明 (流式处理终结点)
【Azure媒体服务 Azure Media Service】Azure Media Service中Stream Endpoint 说明 (流式处理终结点)
|
5月前
【Azure 服务总线】Azure Service Bus中私信(DLQ - Dead Letter Queue)如何快速清理
【Azure 服务总线】Azure Service Bus中私信(DLQ - Dead Letter Queue)如何快速清理
|
5月前
|
存储 Java API
【Azure 事件中心】在Service Bus Explorer工具中查看到EventHub数据在分区中的6种属性问题
【Azure 事件中心】在Service Bus Explorer工具中查看到EventHub数据在分区中的6种属性问题
|
5月前
【Azure 环境】如果Azure中的某一个资源被删除后是否可以查看到删除的记录呢?如Resource Group
【Azure 环境】如果Azure中的某一个资源被删除后是否可以查看到删除的记录呢?如Resource Group
|
5月前
|
网络安全
【Azure Service Bus】启用诊断日志来获取客户端访问Azure Service Bus的IP地址 [2024-03-26 实验结果失败]
【Azure Service Bus】启用诊断日志来获取客户端访问Azure Service Bus的IP地址 [2024-03-26 实验结果失败]
|
5月前
|
缓存 Java API
【Azure 服务总线】详解Azure Service Bus SDK中接收消息时设置的maxConcurrentCalls,prefetchCount参数
【Azure 服务总线】详解Azure Service Bus SDK中接收消息时设置的maxConcurrentCalls,prefetchCount参数
|
5月前
|
API 网络架构 开发者
【Azure 应用服务】App Service多个部署槽(Slot)之间,设置Traffic百分比后,如何来判断请求是由那一个槽(Slot)来进行处理呢?
【Azure 应用服务】App Service多个部署槽(Slot)之间,设置Traffic百分比后,如何来判断请求是由那一个槽(Slot)来进行处理呢?