fix(config): Consul 用 SimpleConfigurationParser 解析扁平 KV
Winton 默认 JsonConfigurationParser 期望单个 key 的 value 是 JSON, 但 buildflow/ 下是 44 个扁平 key=value(每个 value 是普通字符串), JSON 解析会失败。改用 SimpleConfigurationParser 把 value 直接作为字符串值。 配合默认 ConvertConsulKVPairToConfig:Consul key 路径去 buildflow/ 前缀后 作为 IConfiguration key(如 buildflow/Jwt:SigningKey → Jwt:SigningKey)。
This commit is contained in:
parent
2f32b74687
commit
e31d2d004c
@ -2,6 +2,7 @@ using BuildFlow.Host;
|
||||
using BuildFlow.Host.Configuration;
|
||||
using OpenTelemetry.Logs;
|
||||
using Winton.Extensions.Configuration.Consul;
|
||||
using Winton.Extensions.Configuration.Consul.Parsers;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
@ -27,6 +28,10 @@ builder.Configuration.AddConsul(
|
||||
if (!string.IsNullOrEmpty(consulToken))
|
||||
co.Token = consulToken;
|
||||
};
|
||||
// 用 SimpleConfigurationParser:每个 Consul KV 的 value 作为字符串值(非 JSON)。
|
||||
// 默认 ConvertConsulKVPairToConfig 把 Consul key 路径(去 buildflow/ 前缀,/ 转 :)作为 IConfiguration key,
|
||||
// 如 buildflow/Jwt:SigningKey → 配置 Jwt:SigningKey,value 直接是密钥字符串。
|
||||
options.Parser = new SimpleConfigurationParser();
|
||||
options.Optional = true; // Consul 不可用不阻断启动,回退本地 appsettings
|
||||
options.ReloadOnChange = true; // KV 变更自动刷新 IConfiguration(热重载基础)
|
||||
options.OnLoadException = ex => ex.Ignore = true; // 容错:Consul 抖动不影响应用
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user