一、概述
由于mysql做了迁移,需要批量修改mysql地址。但是java应用有上百个,修改起来很麻烦。
所以需要通过调用nacos api接口来进行批量修改
二、批量导入
下载修改
点击某个命名空间,下载所有配置
然后会得到文件nacos_config_export_20250221143024.zip
将里面的文件解压出来,使用vscode编辑器批量替换。
批量修改
这里使用python脚本,调用nacos api接口,批量修改。
新建目录write_nacos
mkdir -p write_nacos
目录结构如下:
./
├── dev
│ └── mid
│ └── application.yaml
└── start.py
说明:
dev目录是分组名
mid目录是中间相关的,里面存放具体的应用配置
核心是start.py,内容如下:
# !/usr/bin/python3
# -*- coding: utf-8 -*-
import requests
import os
NACOS_SERVERS = "http://192.168.10.1:8848"
def write_nacos(directory,namespace,group):
for root, dirs, files in os.walk(directory):
for file in files:
# print(file)
file_path = os.path.join(root, file)
# print(file_path)
with open(file_path, mode="r", encoding="utf-8") as f:
content = f.read()
data = {
"tenant": namespace,
"dataId": file,
"group": group,
"content": content,
"type": "yaml",
}
url = NACOS_SERVERS + "/nacos/v1/cs/configs"
response = requests.post(url, data=data)
# print(response)
status_code = response.status_code
# print(status_code,type(status_code))
if status_code == 200:
print("%s执行成功" % file)
else:
print("%s执行失败" % file)
directory = "dev/mid"
namespace = "dev-mid"
group = "dev"
write_nacos(directory,namespace,group)
注意修改nacos server地址
修改directory,namespace,group
运行脚本
python3 start.py
输出:
application.yaml执行成功
最后进入nacos页面,查看配置是否修改成功。