最近用了新电脑,配置python的开发环境,于是乎,我就安装了python3.11,接到一个需求为项目需介入apollo,那么开始吧~
以下主要讲解我踩到的坑,希望大家可以避雷
首先呢,我找到了apollo的官方开发文档,Apollo然后开始找python的接入手册,看到了三个,分别如下,大家直接点进去即可。
Apollo Python 客户端 1
项目地址:pyapollo
非常感谢@filamoon提供Python Apollo客户端的支持
Apollo Python 客户端 2
项目地址:BruceWW-pyapollo
非常感谢@BruceWW提供Python Apollo客户端的支持
Apollo Python 客户端 3
项目地址:xhrg-product/apollo-client-python
非常感谢@xhrg-product提供Python Apollo客户端的支持
看见这三个客户端,其实我也不知道选哪个,那就第一个吧,哈哈
客户端1的安装包下载下来并且安装以后,发现client压根就无法start(),还抛了一个编码的异常出来,检查了我传入的配置,都无误,后来才发现原来是版本问题,大家一定要注意啊,作者是 Tested with python 2.7 & 3.6,其他python版本的朋友们,可以跳过该客户端咯,防止试错额。
那就开始第二个吧~
客户端2的安装包下载并且安装以后,client可以start(),好开森有没有~!终于可以连接上并且start了呢,可是就在client.get_value的时候,发现压根无法获取到数据,在网上搜了好多解决办法,有说要将namespace的数据初始化一下,可是我也是初始化了,namespace里是有配置字段的,那怎么办嘞,只好挨个打断点进入到客户端的源码去看,发现该处的url请求之后是报了404,那就是路径不对么?
那就去看官方文档,看下这个url是不是对的呀,走,去官方接口文档瞅瞅,在Apollo里没有找到如上的url噢,也不知道404是不是这个原因,也可能是我猜错了,但是结论就是使用客户端2无法获取namespace的字段值,大家如果有解决办法,欢迎沟通哦,大概率是我使用方式不对~
那咱们就开始客户端3吧,哈哈哈~
客户端3下载后,没有set_up.py文件,就直接只用了里面的Class,还挺方便(我不是托~),
from apollo.apollo_client import ApolloClient apollo_config_url = 'xxxx' client = ApolloClient(app_id="xxx", cluster="default", config_url=apollo_config_url) val = client.get_value("xxx", default_val="defaultVal")
简易的使用方式如上,只要配置正确,一切都没有问题,我也正确获取到了apollo里的值,开森!
以上就是我的经验,供大家参考,若有类似的经历,一起交流哦~