python 讀取consul配置


自動化通過rcp client調用遠端服務接口時,都需要將遠端測試服務ip、端口記錄在配置文件。

但由於,服務發布或重啟會導致ip、端口變動。

以下將通過python-consul 自動去讀取consul配置,獲取相應服務的ip、port

1 import consul
2 #connect consul
3 c = consul.Consul(host='10.1.x.x',port=8500,scheme='http')
4 data = c.catalog.service('xxxxme.srv.account')
5 for value in data[1]:
6     print("accountSrv addr: " + value['ServiceAddress'],value['ServicePort'])

輸出結果如下:

 

 

參考文檔:http://python-consul.readthedocs.io/en/latest/

 

將上述代碼封裝,並使用unittest調用時,返回如下警告:

C:\python3.6\lib\collections\__init__.py:431: ResourceWarning: unclosed <socket.socket fd=864, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('10.100.x.x', 37321), raddr=('10.1.x.x', 8500)>
exec(class_definition, namespace)
C:\python3.6\lib\site-packages\urllib3\util\timeout.py:94: ResourceWarning: unclosed <socket.socket fd=900, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('10.100.x.x', 37320), raddr=('10.1.x.x', 8500)>
self._connect = self._validate_timeout(connect, 'connect')

查了一番資料,可以通過warnings庫來忽略掉相關告警。

import warnings
warnings.simplefilter("ignore", ResourceWarning)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM