我需要使用 http api 获取所有consul
kv 值。目前我可以使用以下命令获取一个值。
curl -k -X GET https://consul.banuka1.us-east-2.test:8543/v1/kv/banuka-test/test-value?token=1995-08-18
Run Code Online (Sandbox Code Playgroud)
它仅返回其中指定的值 ( test-value
)
但我想获得所有的值kv store
我怎样才能做到这一点?这里有解决方法吗?
注意:我已经使用consul
cli 完成了此操作,但我想使用https api
小智 15
您可以使用查询参数来简化这一过程并减少 API 调用的数量recurse=true
。
curl http://127.0.0.1:8500/v1/kv/\?recurse=true | jq -r '.[].Value | @base64d'
Run Code Online (Sandbox Code Playgroud)
我通常这样做是为了打印所有键和值。
v1/kv/?keys
- 返回所有键
然后,我迭代每个键并读取原始响应并解码 Base64 值。
while read -r key
do
value=`curl --silent "http://127.0.0.1:8500/v1/kv/$key" | jq -r '.[].Value' | base64 --decode`
echo "$key - $value"
done < <(curl --silent "http://127.0.0.1:8500/v1/kv/?keys"| jq -r '.[]')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13144 次 |
最近记录: |