在启动时可以初始化Consul Key Value存储吗?

我可以在启动时使用/ consul / config目录初始化Consul服务。 我希望在启动Consul容器时能够将我的应用程序设置初始化到Consul kv商店中。 这可能吗?

我想要一个简单的方法来在Consul中为微服务项目设置应用程序设置。 我确定有一些现有的工具,但我想要一些轻量级的,适合我的开发过程。 所以我没有尝试使用@ mgyongyosi的一些build议,而是编写了一个快速的dotnet控制台应用程序来完成(而不是)繁重的工作。 在项目根目录下,我创build了一个目录结构Consul/kv 。 该path下的子目录代表Consul KV商店中的密钥,叶上的json文件代表应用程序设置。 请注意,预计每个叶目录只有一个json文件。 应用程序使用Consul.NET nuget包与Consul通信。

 using System; using System.IO; using System.Net.Http; using System.Text; using System.Threading.Tasks; using Consul; namespace ConfigureConsulKv { class Program { private static readonly string _basePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Projects", "MyProject", "Consul", "kv"); static void Main(string[] args) { RecurseDirectory(_basePath); } static void RecurseDirectory(string path) { foreach (var dir in Directory.EnumerateDirectories(path)) RecurseDirectory(dir); var file = Directory.EnumerateFiles(path, "*.json").FirstOrDefault(); if (!string.IsNullOrWhiteSpace(file)) { var key = path.Substring(_basePath.Length + 1); var json = File.ReadAllBytes(file); Console.WriteLine($"key {key} file {file}"); using (var client = new ConsulClient()) { var attempt = client.KV.Put(new KVPair(key) { Value = json }).Result; Console.WriteLine($"status {attempt.StatusCode}"); } } } } }