我在 json 中配置了应用程序,每个应用程序最多有 80 个键/值对,这些键/值对将存储在 Consul KV 存储中。通常它们是java键值属性,我有一个简单的shell脚本,它确实对值进行编码并将其转换为与consul import命令兼容的导入。我正在尝试为板载的新应用程序(开始使用 KV 商店的 consul 的应用程序(自动导入 consul KV。 到目前为止,我们正在手动运行consul kv import @app_config.json
但是,我想调用HTTP api,而不是通过领事KV导入导入。有什么建议吗?
JSON 格式的应用配置示例。
[
{
"key": "asia",
"flags": 0,
"value": "NDQzNg=="
},
{
"key": "asia/india",
"flags": 0,
"value": "MTMyNA=="
},
{
"key": "europe",
"flags": 0,
"value": "NzQzLjE="
},
{
"key": "europe/france",
"flags": 0,
"value": "NjYuOQ=="
},
{
"key": "europe/germany",
"flags": 0,
"value": "ODIuNjc="
}
]
基本上你需要发送 PUT/v1/txn 请求,其中包含包含事务操作数组的有效负载,例如
const url = 'http://127.0.0.1:8500/v1/txn';
const bulk = [
{
"KV": {
"Verb": "set",
"Key": "bulk/hello",
"Value": "aGVsbG8="
}
},
{
"KV": {
"Verb": "set",
"Key": "bulk/world",
"Value": "d29ybGQ="
}
}
];
const options = {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json;charset=UTF-8'
},
body: JSON.stringify(bulk)
};
await fetch(url, options);