apisix shell批量更新upstream routes

本文介绍了如何使用Bash脚本,通过API调用,批量将APIGateway的上游配置从HTTP修改为HTTPS,并更新路由的HTTP方法和添加请求ID插件。
摘要由CSDN通过智能技术生成

修改所有的上游配置http改为https(host port修改参考注释)

#!/bin/bash

# 获取原始数据
response=$(curl -s -H "X-API-KEY: xxx" http://127.0.0.1:9180/apisix/admin/upstreams)

# 修改host和port
# modified_response=$(echo $response | jq  '.list[].value.nodes[].host="0.0.0.0" | .list[].value.nodes[].port=443')
 modified_response=$(echo $response | jq  '.list[].value.scheme="https"')

# 遍历修改后的upstreams,并将每个upstream推送回API
echo $modified_response | jq -c '.list[]' | while read i; do
    id=$(echo $i | jq -r '.value.id')
    value=$(echo $i | jq -r '.value')
    curl -X PUT -d "$value" -H "X-API-KEY: xxx" http://127.0.0.1:9180/apisix/admin/upstreams/$id
done

修改路由中的method和plugins,可以覆盖也可以追加

#!/bin/bash

# 获取原始数据
response=$(curl -s -H "X-API-KEY: xxx" http://127.0.0.1:9180/apisix/admin/routes)

# 修改method and plugins
 modified_response=$(echo $response | jq   '.list[].value.methods=["GET", "POST","HEAD","OPTIONS"] | .list[].value.plugins = {"request-id": {"_meta": {"disable": false}}}')

# 遍历修改后的upstreams,并将每个upstream推送回API
echo $modified_response | jq -c '.list[]' | while read i; do
    id=$(echo $i | jq -r '.value.id')
    value=$(echo $i | jq -r '.value')
    curl -X PUT -d "$value" -H "X-API-KEY: xxx" http://127.0.0.1:9180/apisix/admin/routes/$id
done

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值