修改所有的上游配置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; doid=$(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 pluginsmodified_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; doid=$(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