diff --git a/src/BuildFlow.Host/Program.cs b/src/BuildFlow.Host/Program.cs index 0834533..6e7f7b9 100644 --- a/src/BuildFlow.Host/Program.cs +++ b/src/BuildFlow.Host/Program.cs @@ -13,12 +13,20 @@ builder.Configuration.AddJsonFile("appsettings.Secrets.json", optional: true, re // 加载顺序决定优先级:后注册的覆盖先注册的,故 Consul 在 Secrets 之后。 // 鸡生蛋问题:Consul 地址本身用环境变量 Consul__Host 注入(compose 配置), // 默认回退到 middleware 公网地址。Consul 不可用时 Optional=true 回退本地 json,不阻断启动。 -var consulHost = builder.Configuration["Consul:Host"] ?? "http://43.134.235.58:8500"; +var consulHost = builder.Configuration["Consul:Host"] ?? "http://43.134.235.58:8520"; +var consulToken = builder.Configuration["Consul:Token"] ?? ""; builder.Configuration.AddConsul( "buildflow/", options => { - options.ConsulConfigurationOptions = co => co.Address = new Uri(consulHost); + options.ConsulConfigurationOptions = co => + { + co.Address = new Uri(consulHost); + // ACL token:Consul 开启了 ACL(default deny),api 必须带专用 token 才能读写 KV + // token 通过环境变量 Consul:Token 注入(compose),不进代码/镜像 + if (!string.IsNullOrEmpty(consulToken)) + co.Token = consulToken; + }; options.Optional = true; // Consul 不可用不阻断启动,回退本地 appsettings options.ReloadOnChange = true; // KV 变更自动刷新 IConfiguration(热重载基础) options.OnLoadException = ex => ex.Ignore = true; // 容错:Consul 抖动不影响应用