shell获取和更新nacos配置

1.获取nacos配置

------不需要用户验证------

# 配置ID
nacos_filename=myproject_service.yml
# 配置分组
groupid=sit
# 租户信息,对应 Nacos 的命名空间ID字段
tenant_name=myproject

# 获取nacos配置
curl -X GET "http://NACOS_IP:NACOS_PORT/nacos/v1/cs/configs?dataId=${nacos_filename}&group=${groupid}&tenant=${tenant_name}" > ${nacos_filename}

------需要用户验证------

# nacos用户
nacos_username=username
# nacos登录密码
nacos_password=password

# 获取登录nacos的token
curl -X POST 'http://NACOS_IP:NACOS_PORT/nacos/v1/auth/login' -d "username=${nacos_username}&password=${nacos_password}" > accesstoken.txt
# 获取token值,需提前安装jq
access_token_str=$(jq -r '.accessToken' accesstoken.txt) 

# 获取nacos配置
curl -X GET "http://NACOS_IP:NACOS_PORT/nacos/v1/cs/configs?accessToken=${access_token_str}&dataId=${nacos_filename}&group=${groupid}&tenant=${tenant_name}" > ${nacos_filename}


2.更新nacos配置文件

# nacos文件上传需要其他方式进行处理
# 读取上传的yml文件
content=$(cat ${update_files})

# 更新yml文件
# -d "content=${content}" 修改为: --data-urlencode "content=${content}" 解决&符号会截断的问题
# 对于&字符,它在Shell中通常用作后台运行命令的符号。因此,当Shell脚本看到&时,它可能会尝试在该位置断行或将命令放入后台运行,这会导致命令失败或行为异常。
curl -X POST 'http://NACOS_IP:NACOS_PORT/nacos/v1/cs/configs' \
  -d "dataId=${update_files}" \
  -d "group=${groupid}" \
  -d "tenant=${tenant_name}" \
  -d 'type=yaml' \
  --data-urlencode "content=${content}"

3.参考资料

nacos官方open-api说明文档:
https://nacos.io/docs/v1/open-api/
https://nacos.io/docs/v2/guide/user/open-api/

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值