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

Azure,数量,Topics,Bus · 浏览次数 : 11

小编点评

## Azure Service Bus门户批量删除主题方法 虽然 Azure Service Bus门户或Service Bus Explorer工具没有提供批量删除主题的方法,但您可以自己写脚本进行批量删除。以下是 Python 的示例代码: ```python import os from azure.servicebus.management import ServiceBusAdministrationClient # 连接字符串 CONNECTION_STR = os.environ['SERVICEBUS_CONNECTION_STR'] # 创建 Service Bus 管理对象 with ServiceBusAdministrationClient.from_connection_string(CONNECTION_STR) as servicebus_mgmt_client: # 获取所有主题信息 for topic_properties in servicebus_mgmt_client.list_topics(): # 根据主题名称删除主题 servicebus_mgmt_client.delete_topic(topic_properties.name) print(f"Topic '{topic_properties.name}' deleted.") ``` **执行效果图:** 1. 运行代码。 2. 出现一个消息,显示已删除所有主题的名称。 **注意:** * 代码需要您设置 Azure Service Bus 的连接字符串 `SERVICEBUS_CONNECTION_STR`。您可以通过以下方法获取连接字符串: * 在 Azure Service Bus门户中创建并设置主题。 * 在 Service Bus Explorer 中创建并设置主题。 * 从 Azure Management Explorer 中获取连接字符串。 * 代码示例中使用了 `delete_topic` 方法,您可以根据需要修改该方法以实现不同的过滤条件。

正文

问题描述

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

 

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

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

问题描述 Azure Service Bus 的门户操作页面上,是否可以批量删除其中的Topics呢? 问题解答 Azure Service Bus门户或Service Bus Explorer工具没有提供批量删除Topic的方法。但是可以自己写脚本删除,并且可以在删除的时候自定义过滤条件。 以Py

【Azure 服务总线】Azure门户获取ARM模板,修改Service Bus的TLS版本

问题描述 在Azure中创建Sverice Bus服务后,如果想修改服务的TLS版本,是否有办法呢? 问题解答 通过Service Bus的ARM模板,修改属性值中的 minimumTlsVersion,可以设置Service Bus服务最低支持的TLS版本,如1.0, 1.1, 1.2 操作步骤为

【Azure 服务总线】查看Service Bus中消息多次发送的日志信息,消息是否被重复消费

问题描述 使用Service Bus,发现消息被重复消费。如果要查看某一条消息的具体消费情况,需要那些消息的属性呢? 问题解答 使用Azure Service Bus,当消费发送到服务端后,就会生产相关属性,如Partition Key,Message ID,Enqueued Time, Seque

【Azure 服务总线】Azure.Messaging.ServiceBus 多次发送消息报超时错误,是否可以配置重新发送?是否有内置重试机制?

问题描述 使用 Azure Service Bus,提供应用程序之间松耦合的消息交换,但是有时候发送消息多次出现超时错误。 A connection attempt failed because the connected party did not properly respond after a

【Azure 服务总线】使用Azure Service Bus 时,出现证书错误: 所使用的证书具有无法验证的信任链

问题描述 在Azure中连接 Service Bus 服务发送消息时发生证书错误,抛出证书异常消息: 或 The X.509 certificate CN=servicebus.chinacloudapi.cn, OU=Azure, O=Shanghai Blue Cloud Technology

【Azure 云服务】为Azure云服务配置上自签名的SSL证书步骤

问题描述 在使用Azure Cloud Service(云服务),默认的情况下都是使用的 HTTP 服务,通过 Visual Studio 2022 创建的默认 Cloud Service项目中,在ServiceDefinition.csdef 服务定义文件中,值默认开启了HTTP 80的Endpo

【Azure Key Vault】Key Vault能不能生成DigiCert证书?能不能自动 Rotate 证书呢?

问题描述 因为Azure Key Vault服务上保管的证书可以轻松的与其他Azure服务集成使用,所以需要知道 Key Vault 能不能生成 DigiCert 证书?能不能自动 Rotate 证书呢? 问题解答 Azure Key Vault本身只是一个保管库,它不会颁发证书。但是可以在页面上直

Azure Service Principals ----- Azure 上最好保守的秘密的服务

一,引言 Azure Service Principals 是 Azure Active Directory (AAD) 中的一种标识,代表应用程序,服务,自动化流程。Service Principals 支持各种 Azure 服务和资源之家的安全通信,为应用程序提供了一种进行身份验证并于 Azur

【Azure 媒体服务】Media Service的编码示例 -- 创建缩略图子画面的.NET代码调试问题

Azure.Identity.AuthenticationFailedException: 'ClientSecretCredential authentication failed: AADSTS90002: Tenant '********-****-****-****-************' not found. Check to make sure you have the corre

【Azure 云服务】Cloud Service Worker Role Workerrole突然停机,查看Events发现 Defrag Error (0x8900002D)

问题描述 Cloud Service Worker Role Workerrole突然停机,查看Events,发现是错误源为 Defrag。 错误消息: The volume Windows was not optimized because an error was encountered: Ne