千家信息网

Python脚本如何读取Consul配置信息

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章给大家分享的是有关Python脚本如何读取Consul配置信息的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。先来说一下背景,为什么要写脚本去读Consul的配置信息
千家信息网最后更新 2026年11月03日Python脚本如何读取Consul配置信息

这篇文章给大家分享的是有关Python脚本如何读取Consul配置信息的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

先来说一下背景,为什么要写脚本去读Consul的配置信息呢?Consul是啥呢?consul是google开源的一个使用go语言开发的服务发现、配置管理中心服务。目前公司用的是这个东西去管理项目上的一些配置信息。公司的环境是通过docker镜像的方式去部署的,镜像是通过rancher去进行管理的。这一套东西面临的一个问题是:服务每次更新之后,服务对应的ip地址是动态变化的。每次需要使用swagger去测接口的时候,都要去rancher上去重新找新的ip地址,比较麻烦。正好呢,最近部门在考虑准备做接口自动化测试,到时候ip总是变的问题也是需要解决的,因此,就先写个脚本调接口获取配置信息,拿到某个服务的ip和端口信息。顺带的把swagger地址也打印出来,以后要访问某个服务的swagger地址就方便很多了。

python读取Consul配置信息的话,用到的是python-consul库,在使用前,需要先安装一下对应的插件。

pip install python-consul

封装好的读取consul配置的类如下:

以下脚本中定义的函数,暂时只做数据打印,并未返回具体的数据,因为不同的consul地址,上面的配置信息其实还需要做处理,比如我这次主需要取出一些部署的服务的ip和端口信息,但是consul上面还有一些其他的配置信息,是可以过滤掉的。并且,有的配置项可能由于配置错误,会存在重复的配置,暂时没有删除,这种的话,后续可以在脚本中根据返回的相关字段,去取有效的配置信息。

import consul  class RFConsul(object):     def __init__(self, host, port):        """初始化,连接consul服务器"""        self._client = consul.Consul(host, port, scheme='http', verify=False)     def getAllServices(self):        services = self._client.agent.services()        for i in services:            service = services.get(i)            print({service['Service']: service})     def getServiceByName(self, service_name):         data = self._client.catalog.service(service_name)        for value in data[1]:            print(service_name + "服务的swagger地址: " + "http://" + value['ServiceAddress'] + ":" + str(value['ServicePort']) + "/swagger-ui.html")

getServiceByName:根据服务名,调用后,直接打印拼接好的swagger-ui的访问地址。

getAllServices:打印某个consul地址下的所有配置信息。

调用方式:

host = "127.0.0.1"  # consul服务器的ipport = "8500"  # consul服务器对外的端口consul_client = RFConsul(host, port)consul_client.getAllServices()res = consul_client.getServiceByName("xxx-servicename") # 输入配置项的名称

调用后,直接得到类似下图的swagger访问地址是不是很香:

然后,在公司中的话,像这种配置中心的地址一般都需要通过代理才能访问,公司用的是socket5的代理,一般在调用脚本的时候要把代理软件打开。也可以在脚本中添加socket代理的配置信息:

 import socket import socks socks.set_default_proxy(socks.SOCKS5, "ip", port) socket.socket = socks.socksocket

感谢各位的阅读!关于"Python脚本如何读取Consul配置信息"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

配置 信息 服务 地址 脚本 公司 代理 接口 服务器 端口 管理 东西 内容 数据 方式 时候 更多 篇文章 问题 不同 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 百单网互联网科技有限公司 互联网科技图片 互联网科技活动banner 互联网科技排名 广州凡科互联网科技 长亮科技 互联网金融 济南华为互联网科技产业总部基地 重庆互联网医院沙龙医盟信息科技 南平创想时代互联网科技有限公司 岳阳华臻互联网科技有限公司 中国互联网十大科技股排名 如何创新互联网科技 企晟互联网信息科技有限公司 阿里互联网科技企业 长沙互联网科技 为客找房互联网科技公司怎么样 梅州GM互联网络科技有限公司 恒生互联网科技趋势 高科技和互联网的现代国家 如何强化互联网金融科技 科技金融是不是互联网金融 赫美联合互联网科技 猫创互联网科技 互联网实体化科技化 深圳前海聚择互联网科技有限公司 互联网之后的科技是什么 注册互联网科技公司经营范围大全 浙南科技城互联网大厦建设工程 互联网行业科技股 杭州披云加互联网科技有限公司
0