激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python腳本讀取Consul配置信息的方法示例

Python腳本讀取Consul配置信息的方法示例

2022-02-23 00:10小博測試成長之路 Python

本文主要介紹了Python腳本讀取Consul配置信息的方法示例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

先來說一下背景,為什么要寫腳本去讀Consul的配置信息呢?Consul是啥呢?consul是google開源的一個使用go語言開發的服務發現、配置管理中心服務。目前公司用的是這個東西去管理項目上的一些配置信息。公司的環境是通過docker鏡像的方式去部署的,鏡像是通過rancher去進行管理的。這一套東西面臨的一個問題是:服務每次更新之后,服務對應的ip地址是動態變化的。每次需要使用swagger去測接口的時候,都要去rancher上去重新找新的ip地址,比較麻煩。正好呢,最近部門在考慮準備做接口自動化測試,到時候ip總是變的問題也是需要解決的,因此,就先寫個腳本調接口獲取配置信息,拿到某個服務的ip和端口信息。順帶的把swagger地址也打印出來,以后要訪問某個服務的swagger地址就方便很多了。

python讀取Consul配置信息的話,用到的是python-consul庫,在使用前,需要先安裝一下對應的插件。

?
1
pip install python-consul

封裝好的讀取consul配置的類如下:

以下腳本中定義的函數,暫時只做數據打印,并未返回具體的數據,因為不同的consul地址,上面的配置信息其實還需要做處理,比如我這次主需要取出一些部署的服務的ip和端口信息,但是consul上面還有一些其他的配置信息,是可以過濾掉的。并且,有的配置項可能由于配置錯誤,會存在重復的配置,暫時沒有刪除,這種的話,后續可以在腳本中根據返回的相關字段,去取有效的配置信息。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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地址下的所有配置信息。

調用方式:

?
1
2
3
4
5
host = "127.0.0.1"  # consul服務器的ip
port = "8500"  # consul服務器對外的端口
consul_client = RFConsul(host, port)
consul_client.getAllServices()
res = consul_client.getServiceByName("xxx-servicename") # 輸入配置項的名稱

調用后,直接得到類似下圖的swagger訪問地址是不是很香:

Python腳本讀取Consul配置信息的方法示例Python腳本讀取Consul配置信息的方法示例

然后,在公司中的話,像這種配置中心的地址一般都需要通過代理才能訪問,公司用的是socket5的代理,一般在調用腳本的時候要把代理軟件打開。也可以在腳本中添加socket代理的配置信息:

?
1
2
3
4
import socket
import socks
socks.set_default_proxy(socks.SOCKS5, "ip", port)
socket.socket = socks.socksocket

到此這篇關于Python腳本讀取Consul配置信息的方法示例的文章就介紹到這了,更多相關Python讀取Consul配置信息內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/liboshi123/article/details/121072499

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 奶子吧naiziba.cc免费午夜片在线观看 | 91久久国产| 精品乱码久久久久 | 91九色电影 | 能看的毛片网站 | 91精品久久久久久久久网影视 | 国产一国产一级毛片视频 | 2021狠狠操 | 蜜桃视频观看麻豆 | 国产品久久 | 女人解衣喂奶电影 | 成人激情综合网 | 久久免费视频一区 | 92看片淫黄大片一级 | 女教师~淫辱の动漫在线 | 精品亚洲免费 | 黄色免费av网站 | 国产毛片毛片 | 国产亚洲精品yxsp | 狠狠干网站 | 国产精品91久久久 | 国产精品久久久久久久久久尿 | 一区播放 | 久久精品国产精品亚洲 | 深夜毛片免费看 | 全黄裸片武则天艳史 | 免费一级特黄欧美大片勹久久网 | 精品在线免费播放 | 51色视频 | 亚洲一区在线免费视频 | 久久吊| 久久伊人国产精品 | 成人性视频欧美一区二区三区 | 99国产精成人午夜视频一区二区 | 毛片在线播放视频 | 中文在线观看视频 | 一级黄色片在线看 | 99精品视频在线免费观看 | 国产亚洲精品一区二区三区 | 欧美a∨亚洲欧美亚洲 | 国产精品av久久久久久网址 |