4

我在 json 中有应用程序配置,每个应用程序最多有 80 个键/值对,它们将存储在 Consul KV Store 中。通常它们是 java 键值属性,我有一个简单的 shell 脚本,它对值进行编码并将其转换为与 consul 导入命令兼容的导入。我正在尝试为板载的新应用程序(开始将 consul 用于 KV Store 的应用程序)自动化 consul KV 导入。到目前为止,我们是手动运行的,consul kv import @app_config.json但是我想调用 HTTP api 而不是通过 consul 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="
        }
]
4

1 回答 1

0

基本上,您需要发送 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);
于 2021-12-19T01:02:31.253 回答