【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 安装:http://pypi.org/project/azure-servicebus/
Service Bus Topic 管理相关操作:http://github.com/Azure/azure-sdk-for-python/blob/main/sdk/servicebus/azure-servicebus/samples/sync_samples/mgmt_topic.py
获取Service Bus 连接字符串:http://docs.azure.cn/zh-cn/service-bus-messaging/service-bus-quickstart-portal#get-the-connection-string

 

当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

本文转载于网络 如有侵权请联系删除

相关文章

  • 【每日一题】【leetcode】11. 数组-在排序数组中查找数字

    题目统计一个数字在排序数组中出现的次数。 难易程度:easy示例1:输入:nums=[5,7,7,8,8,10],target=8 输出:2示例2:输入:nums=[5,7,7,8,8,10],target=6 输出:0限制:0<=数组长度<=50000来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/zai-pai-xu-shu-zu-zhong-cha-zhao-shu-zi-lcof 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。题解分析本题是一个典型的查找问题。根据题意可以提取两点信息:数组本身是有序的需要输出target出现的次数因此,本题转换成查找边界问题:target第一次出现的位置target最后一次出现的位置时间复杂度:O(logN) 空间复杂度:O(1)代码classSolution{ public: intsearch(vector<int>&nums,inttarget){ //查找target第一次出现的位置 intleft=0,right=nums.s

  • Flutter 封装多功能日志工具类 :Logger【终端输出带颜色】

    #效果这里先用LogE举例,(macOS)终端输出效果如下: #引入需要使用日志工具我这里使用的是logger,映入方法如下在pubspec.yaml中添加以下依赖:dependencies: flutter: sdk:flutter #printcolorfullogs logger:^1.0.0复制#封装新建utils文件夹,如果项目中已经存在则跳过此步骤在这个目录下,再新建一个dart文件,名为log_util.dart具体实现内容如下,欢迎直接cv即可import'package:logger/logger.dart'; constString_tag="easy_tab_controller"; var_logger=Logger( printer:PrettyPrinter( methodCount:0, ), ); LogV(Stringmsg){ _logger.v("$_tag::$msg"); } LogD(Stringmsg){ _logger.d("$_tag::$msg")

  • Override,Overload,Overwrite到底有什么区别?

    Override,Overload,Overwrite的区别【新手可忽略不影响继续学习】 方法的覆盖(Override)是指子类重写从父类继承来的一个同名方法(参数、返回值也同),马克-to-win:此时子类将清除父类方法的影响,实现自身的行为。实在想用原来的,可以用super。顺便说,overload指同名方法,通过不同的参数样式共存,有时用这个,有时用那个。参数样式指,不同的参数类型,不同的参数个数,不同的参数顺序,返回值不起作用。再顺便说,比较权威公开的著作,都支持overwrite在java中不存在的说法。我们看看下面的一个实用的例子。此例子证明,compiler(编译器)一定是按照先子类,后父类,先精确匹配,后模糊匹配的顺序。例1.5.3---classAAAMark_to_win{   doublef(doublex,doubleyMark_to_win){       returnx*yMark_to_win;   }   doublef(intx,doubley){       returnx*y*2;   }}classBBBextendsAAAMark_to_win

  • uni-app学习笔记-页面跳转和传参问题(六)

    在登录界面,输入用户名和密码,输入成功之后,会登录进我们的项目里面,现在来实现一下,登录到导航tab页面和普通页面。一:页面跳转1:登录成功,跳转到导航tab页面 注意:跳转到tabBar页面只能使用switchTab跳转 在login.vue里面if(checkRes){ uni.showToast({title:"验证通过!",icon:"none"}); uni.switchTab({ url:"../tabbar-1/tabbar-1", success:res=>{}, fail:()=>{}, complete:()=>{} });复制tabbar-1界面是跳转成功后的导航tab页面2:登录成功跳转到一个普通页面 新建一个页面list2detail-list打开配置界面pages.json,配置新建的页面的路径在login.vue里面写代码,验证通过的时候跳到新建的页面(有返回按钮)if(checkRes){ uni.showToast({title:"验证通过!",icon:

  • 中国网络安全细分领域矩阵图(Matrix 2019.11)发布

    本文转载自安全牛 自2018年11月安全牛首次发布中国网络安全细分领域矩阵图(Matrix2018.11)以来,矩阵图受到来自业内各方面的关注和认可。在以往成果的基础上,安全牛分析师继续深入细分领域和行业用户,历经五个月的调研和访谈工作,于今日推出《中国网络安全细分领域矩阵图》(Matrix2019.11)。 本次调查数据的时间区间为2018年全年,调查对象为国内市场上相应细分领域的网络安全公司。此次报告推出的矩阵图包含4个细分领域:工业控制系统安全、身份与访问管理(IAM)、Web应用防火墙(WAF/云WAF)、下一代防火墙/防火墙/UTM。同时也对各细分领域的技术定义、产品比例、产品形态、行业用户、技术趋势和市场规模进行了简要叙述。 此外,自本次矩阵图开始,安全牛根据国内安全技术及产业的发展程度,将网络安全细分领域市场划分为四个阶段:概念市场、新兴市场、发展市场和成熟市场。 √概念市场:已有新技术概念和框架的提出,尚未形成完整的落地方案。 √新兴市场:一些安全企业开始投入研发,并形成少量的收入,但多数用户尚在观望。 √发展市场:该技术已有较为成熟的产品及典型案例,市场开始进入快速增

  • 性能测试技能树

    基础: 完整的性能测试流程     需求-计划-方案-环境搭建-用例设计-数据准备-场景设计-脚本开发-脚本执行-结果分析-问题反馈-性能调优-结果报告 性能指标     TPS,QPS,RPS,HPS,RT,VU,ERROR 测试类型     压力测试,负载测试,并发测试,spike测试,稳定性测试,破坏性测试,验收测试 工具:  jmeter工作原理   常用的元件,插件   jmeter如何设计脚本(线程组,各种请求,定时器,参数化,关联,断言)   jmeter测试报告   jmete设计典型性能测试场景其它工具   wrk,ab,httpload,webbench,siege 服务器/中间件   JVM原理和配置、堆栈原理、GC原理、FullGc,OOM   Tomcat配置、使用方法、启动参数配置   Nginx配置、使用方法     Dubbo服务注册、消息队列 服务器硬件资源   cpu,磁盘,网络,内存,load和利用率,IO读写,发包率丢包率 linux性能监听命令   lscpu,uptime,free,vmstat,mpstat,sysstat,netstat,

  • 区块链+知识产权保护

    2018年3月16日,区块链+知识产权圆桌会议围绕着:1.知识产权保护、交易、互联网公证、互联网知识产权价值评估、知产虚拟数字货币发行与区块链的结合与应用。2.当前知识产权+区块链应用模式及经营状况分析。3.知识产权+区块链应用、数字货币发行等面临的监管与政策风险分析等方面大咖们展开了热烈讨论,真知灼见不断激起了阵阵掌声,大家一起探究区块链更大的商业价值,打造区块链与知识产权相结合的健康生态。从知识产权的角度来看,区块链技术最著名的用途便来自于其自身最基本的功能。即,该技术可作为时间戳信息的分布式数据库来记录知识产权或版权资产的产权链(chain-of-title)以及所有权情况。在区块链中,所有权可以按照顺序实时地持续更新,从而可以为任何一种知识产权资产的转让活动提供不可篡改的跟踪记录,并且再也无需去寻求第三方信托的帮助。此外,凭借区块链潜在的互通性,这项技术还有望为全球知识产权或·版权注册制度提供助力,从而让不同国家公民之间的知识产权或版权转让备案工作变得比在谷歌进行一次搜索还要简单。注意:版权、专利、著作权都是属于知识产权的一种。互联网使内容得以免费分享,但也带来了侵权盗版现象,

  • 小程序营销方法论,值得每个品牌主学习

    小程序自2017年1月上线以来,得到了飞速的发展,革命性地降低了App开发成本、降低了用户使用移动应用的成本、缩短了用户使用场景的路径,将微信社交体系、公众号内容体系和微信支付体系全部打通。在微信小程序快速发展的现状下,行业整体呈现怎样的趋势?企业又该如何利用流量红利进行营销推广呢?小程序市场现状1.小程序借助微信流量池,逐渐渗透到生活的各个领域微信以10亿+月活跃用户,已经成为互联网第一大的流量入口,小程序基于微信发展,已经逐渐渗透至购物、游戏、社交游戏等生活领域。2.小程序增长迅速,月活突破4亿自从跳一跳成为广大微信用户的休闲方式开始,小程序的热火迅速蔓全国,小程序的用户和开发者都迅速增长。如此庞大的用户体量,成为当下各大商家争夺的焦点。3.小程序生态逐步成型小程序经过一年多的发展,以及官方不断释放小程序的能力,使小程序生态基本成型。4.小程序入口不断丰富为增加活跃度、解决留存难问题,微信为小程序开放了50余个入口,促进分享与留存,目前“分享”仍是最主要的场景入口,在促进用户分享方面有良好设计的小程序具备裂变的基础。但根据微信官方的态度,未来“搜索”将会是小程序最大的场景入口之一,

  • 百度搜索 “Java面试题” 前200页(面试必看)

    前言本文中的题目来源于网上的一篇文章《百度搜索“Java面试题”前200页》,但该文章里面只有题目,没有答案。因此,我整理了一些答案发布于本文。本文整理答案的原则是尽量做到精简、点到即止(因为一般面试题的试卷里面的作答区域有限)。如果你有更好的答案,欢迎在评论区指出,或者给Github仓库提PR。本文永久更新地址:https://github.com/nnngu/LearningNotes/blob/master/Interview/03%20%E7%99%BE%E5%BA%A6%E6%90%9C%E7%B4%A2%20%E2%80%9CJava%E9%9D%A2%E8%AF%95%E9%A2%98%E2%80%9D%20%E5%89%8D200%E9%A1%B5%EF%BC%88%E5%90%AB%E7%AD%94%E6%A1%88%EF%BC%89.md基本概念1、操作系统中heap和stack的区别堆:堆空间一般由程序员来分配,可以由垃圾回收机制来回收。一般用来存放new创建的对象和数组。 栈:栈是“后进先出”的存储空间,一般用来存储基本类型的数据和对象的引用。复制2、什么是基于

  • POJ 1014 Dividing (多重可行性背包)

    题意 有分别价值为1,2,3,4,5,6的6种物品,输入6个数字,表示相应价值的物品的数量,问一下能不能将物品分成两份,是两份的总价值相等,其中一个物品不能切开,只能分给其中的某一方,当输入六个0是(即没有物品了),这程序结束,总物品的总个数不超过20000 思路 裸的多重可行性背包,设dp[i]表示容量为i是否可装。状态设计看代码吧。 代码   [cpp] #include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<string> #include<cstring> #include<vector> #include<set> #include<stack> #include<queue> #defineMID(x,y)((x+y)/2) #defineMEM(a,b)memset(a,b,sizeof(a)) #defineREP(i,begin,end

  • 利用数组将纵库转换为横库

    原始数据库结构: 转换之后的结构: 程序如下: datatest; inputnoxyz; datalines; 148138103 136121160 2134159 23112748 336108107 34513293 4222751426 43981056574 ; run; %macrotest(row,col,all); procsortdata=test;byno;run; procsqlnoprint; selectcount(distinctno)into:tnumfromtest; quit; procsqlnoprint; createtabletemp1as selectdistinctno fromtest; quit; %doi=1%to&tnum.; data_null_; settemp1; if_n_=&i.then callsymputx('no',no); run; datatest&no.; retainnoxyx; settest; ifno="&no."; run; datatest&am

  • CCF 201803-4 棋局评估 (对抗搜索)

    题意:给一个井字棋的棋盘,对于已经赢的局面,得分是(棋盘上的空格子数+1)*(A为1,B为-1),给出现在的局面求最后的得分 思路:这个叫对抗搜索,每次换一个人搜一下,上次考我还在想下哪里?结果答案是:搜索,随便下   1#include<cstdio> 2#include<cstring> 3#include<algorithm> 4#include<iostream> 5#defineLLlonglong 6#definedebug(x)cout<<"["<<x<<"]"<<endl 7usingnamespacestd; 8 9inta[3][3]; 10 11boolrow(intr,intp){ 12returna[r][0]==p&&a[r][1]==p&&a[r][2]==p; 13} 14 15boolcol(intc,intp){ 16returna[0][c]==p&&a[1][c]==p&&a[

  • 工控机与运动控制卡

    目录1.工业电脑1.1.ATX主板1.2.单板+背板1.3.机箱2.运动控制卡2.1.运动控制卡2.2.运动控制器2.3.PLC2.4.分类2.5.分布式运动控制2.5.1.主-从分布式凌华运动控制卡PCI-7856(256轴)2.5.2.凌华分布式4轴运动控制模块MNET-4XMO2.6.EtherCAT2.7.Ethernet2.8.EMX-1003.数据采集卡3.1.HSL系统3.2.工业主板3.2.1.M43/M43H3.3.长卡+背板 1.工业电脑 常见参数说明: RAID:阵列备份 LPT接口:并口,用于打印机(DB25) 1.1.ATX主板 注意:使用限制,最多7个PCI插槽 IMB-M40H(存货) IMB-M43 匹配6/7代Intel处理器 IMB-M43H 1.2.单板+背板 PICMG1.3单板(全长主板) NuPRO-E43 PICMG1.3背板 EBP-13E2 EBP-14E4 注意:一般不用于DIO的处理(虽然手册里说是可以的,但开发工作量巨大) 1.3.机箱 RK610A/AM 高度4U 19寸 2.运动控制卡

  • 三.[前端总结]之浏览器篇

    1. 跨标签⻚通讯   不同标签⻚间的通讯,本质原理就是去运⽤⼀些可以共享的中间介质,因此⽐较常⽤的有以下⽅法: 通过⽗⻚⾯window.open()和⼦⻚⾯postMessage   异步下,通过window.open('about:blank')和tab.location.href='*' 设置同域下共享的localStorage与监听window.onstorage   重复写⼊相同的值⽆法触发   会受到浏览器隐身模式等的限制 设置共享cookie与不断轮询脏检查(setInterval) 借助服务端或者中间层实现   2. 浏览器架构   ⽤户界⾯ 主进程内核   渲染引擎   JS 引擎     执⾏栈 事件触发线程   消息队列     微任务     宏任务 ⽹络异步线程 定时器线程   3.浏览器下事件循环(Event Loop)   事件循环是指:执⾏⼀个宏任务,然后执⾏清空微任务列表,循环再执⾏宏任务,再清微任务列表 微任务microtask(jobs):promise/

  • C++ 异常~一 转

    C++异常机制分析   阅读目录 C++异常机制概述 throw关键字 异常对象 catch关键字 栈展开、RAII 异常机制与构造函数 异常机制与析构函数 noexcept修饰符与noexcept操作符 异常处理的性能分析   正文 回到顶部 C++异常机制概述 异常处理是C++的一项语言机制,用于在程序中处理异常事件。异常事件在C++中表示为异常对象。异常事件发生时,程序使用throw关键字抛出异常表达式,抛出点称为异常出现点,由操作系统为程序设置当前异常对象,然后执行程序的当前异常处理代码块,在包含了异常出现点的最内层的try块,依次匹配catch语句中的异常对象(只进行类型匹配,catch参数有时在catch语句中并不会使用到)。若匹配成功,则执行catch块内的异常处理语句,然后接着执行try...catch...块之后的代码。如果在当前的try...catch...块内找不到匹配该异常对象的catch语句,则由更外层的try...catch...块来处理该异常;如果当前函数内所有的try...catch...块都不能匹配该异常,则递归回退到调

  • 建造者模式

      建造者模式也是一种对象创建型模式。相较于工厂模式、单例模式等创建简单类型对象的创建型模式,这种模式适合创建复杂类型的对象。比如我们要组装一辆汽车,包括许多组件,发动机、轮胎、车架等。每一个组件可以看做是一个简单类型的对象,那么整个汽车就相当于一个复杂类型的对象。   那么我们如何将这些组件构建和组合设计,建造者模式为我们提供了解决方案,我们将组件的构建和设计分离,抽象成一个构建器和一个设计器。构建器负责生产各种汽车组件,设计器负责将这些组件设计组合。下面我们开始构建和设计一辆宝马汽车。 1.建造者模式整体设计示意图 2.汽车组件类   首先我们要创建一个汽车的组件类,声明各种汽车的组件。汽车的各个组件定义成了一个个类,通过在组件类中声明有参构造器来注入汽车各种组件的商标,也可以通过set方法注入,这里使用构造器注入。同时通过get方法获取宝马汽车的各种组件的商标。 //汽车组件类,声明汽车各种组件 publicclassCar{ privateEngineengine;//引擎 privateTyretyre;//轮胎 privateFrameframe;//车架 publi

  • 问题

    java.lang.Exception:java.lang.ArrayIndexOutOfBoundsException:0 路漫漫其修远兮吾将上下求索

  • [LeetCode] 237. 删除链表中的节点

    下一个值覆盖当前值即可。。 classSolution{ publicvoiddeleteNode(ListNodenode){ while(node.next.next!=null){ node.val=node.next.val; node=node.next; } node.val=node.next.val; node.next=null; } } 复制

  • mac下安装mysql 配置环境变量 mysql更改初始密码 mysql忘记登录密码 重置密码

    一、mysql的安装 1,msyql官网:https://dev.mysql.com/downloads/ 往下翻找到macOS版本下载dmg文件 2,下载后各种下一步,最重要的是在结束的时候,会弹出对话框告诉你mysql的账号和初始密码是什么 类似如下:2018-03-21T02:25:01.339790Z1[Note]Atemporarypasswordisgeneratedforroot@localhost:GV(fmQ!kL9K2 所以我安装后的mysql账号是root密码是GV(fmQ!kL9K2   二、配置环境变量 默认mysql安装的路径是/usr/local/mysql  1,终端敲:sudovim.bash_profile 敲回车后提示让你输入电脑密码 密码输入后敲回车(敲的密码是不会在终端上显示出来的) 就可以用vim模式编写.bash_profile文件了如图,下面的绿色文字表示vim模式下几种操作模式 2,因为我们要编写文件,所以敲键盘E字母,此时是无法编辑文件的,继续敲击I字母表示insert插入此时可以编辑 3,在最后

  • ssh远程免密登录Linux

    一、在本地机器创建公钥,一路回车即可 ssh-keygen-trsa 二、发送公钥到远程服务器端 如果是默认端口:scpid_rsa.pubuser@ip:~/.shh 如果远程服务器设置的是其它端口:scp-Pport id_rsa.pubuser@ip:~/.shh 如果服务器上没有.ssh文件夹,则登录服务器输入如下命令创建 mkdir~/.ssh chmod700~/.ssh 三、登录远程服务器 ssh-pportuser@ip 进入.ssh文件cd~/.ssh 复制公钥文件到autorized_keys catidrsa.pub>>authorizedkeys 修改文件权限 chmod600authorized_keys     p.p1{margin:0;font:12px"HelveticaNeue";color:rgba(69,69,69,1)}

  • ceph高可用分布式存储集群12-S3cmd详解

    S3cmd(s3cmd)是免费的命令行工具和客户端,用于在AmazonS3和其他使用S3协议的云存储服务提供商(例如GoogleCloudStorage或DreamHostDreamObjects)中上载,检索和管理数据。最适合熟悉命令行程序的高级用户。它也是批处理脚本和自动备份到S3(由cron等触发)的理想选择。 S3cmd用Python编写。它是根据GNU公共许可证v2(GPLv2)提供的一个开源项目,可免费用于商业和私人用途。您只需要向Amazon支付使用其存储的费用。 自S3cmd于2008年首次发布以来,它已添加了许多功能和选项。…我们最近统计了60多个命令行选项,包括分段上传,加密,增量备份,s3同步,ACL和元数据管理,S3存储桶大小,存储桶政策以及更多内容! 一:安装方法 yuminstalls3cmd-y 二:使用方法 通过s3cmd—help查看具体使用方法;1.配置AccessKeyID和SecretAccessKeys3cmd—configure2.列举所有的Bucketss3cmdls3.创建bucket,且bucket名称是唯一的,不能重复。s3cmdmb

相关推荐

推荐阅读