Python 集成 Nacos 配置中心
from nacos import NacosClient
import yaml
import os
import json
# 使用 pyyaml 模块,把从配置中心获取的 yaml 数据转为 json 数据
def get_config():
config = load_config('../config/')
client = NacosClient(config['Global']['nacos']['ip'] + ':' + config['Global']['nacos']['port'],
namespace=config['Global']['nacos']['namespace'],
username=config['Global']['nacos']['username'],
password=config['Global']['nacos']['password'])
data_id = config['Global']['nacos']['data_id']
group = config['Global']['nacos']['group']
config_info = client.get_config(data_id, group)
if isinstance(config_info,bytes):
str_config_info = config_info.decode()
else:
str_config_info = config_info
dict_config_info = yaml.load(str_config_info,Loader=yaml.FullLoader)
json_data = json.dumps(dict_config_info)
print(json_data)
return json_data
# 加载 yaml 文件里的信息
def load_config(file_path):
"""
Load config from yml/yaml file.
Args:
file_path (str): Path of the config file to be loaded.
Returns: global config
"""
_, ext = os.path.splitext(file_path)
assert ext in ['.yml', '.yaml'], "only support yaml files for now"
config = yaml.load(open(file_path, 'rb'), Loader=yaml.Loader)
return config
# 测试
if __name__ == '__main__':
get_config()