etcd http API

在docker中启动etcd

参考 https://etcd.io/docs/v3.5/op-guide/container/

启动后,假定服务监听在192.168.1.21:2379.

基本示例

range操作通过指定keyrange_end两个参数,可以实现对key的遍历。这两个参数需要以base64进行编码。
返回结果的key和value也会使用base64编码。

如果keyrange_end都是\x00,就会返回所有的key。
\x00进行base64进行编码如下:

$ echo -ne '\x00'|base64   
AA==

获取所有的key:

curl -L http://192.168.1.21:2379/v3/kv/range   -X POST  \
    -d '{"key": "AA==","range_end": "AA=="}'

前缀

如果只想获取某个前缀的所有key,可以在后缀加上 \xff来设置range_end,如下所示:

# 前缀
$ echo -ne '/some-prefix/'|base64
bmUgL3NvbWUtcHJlZml4Lwo=

# end
$ echo -ne '/some-prefix/\xff'|base64
bmUgL3NvbWUtcHJlZml4L1x4ZmYK

$ curl -L http://192.168.1.21:2379/v3/kv/range   -X POST  \
    -d '{"key": "bmUgL3NvbWUtcHJlZml4Lwo=","range_end": "bmUgL3NvbWUtcHJlZml4L1x4ZmYK"}'

base64 -d 解码打印key

$ curl -L http://192.168.1.21:2379/v3/kv/range   -X POST  \
    -d '{"key": "AA==","range_end": "AA=="}' > res.json
$ cat res.json |jq '.kvs|.[]|.key' -r|xargs -I {} bash -c 'echo {}|base64 -d;echo '

v3 API 官方文档

https://etcd.io/docs/v3.3/dev-guide/api_reference_v3/

你可能感兴趣的:(帮助文档,etcd,linux,bash)