问题描述
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
当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
它的好处是消除对象间的耦合度,在派生子类时提供了更大的灵活性。但盲目的把普通的构造函数扔在一边,并不值得提倡。如果要采一不可能另外换用一个类,或都不需要在运行期间在一系列可互换的类中进行选择,就不应该使用。这样在后期代码重构时还有机会使用。 简单工厂 这种方式…