我在托管我的应用程序的 kubernetes pod 上有一个环境变量列表,它没有任何部分,只有如下所示的变量列表:
KAFKA_BOOTSTRAP_SERVERS
KAFKA_PASSWORD
KAFKA_TOPIC
KAFKA_USERNAME
将其映射到我的选项类的最佳方法是什么
[ConfigurationKeyName("KAFKA_BOOTSTRAP_SERVERS")]
public required string BootstrapServers { get; set; }
[ConfigurationKeyName("KAFKA_USERNAME")]
public required string Username { get; set; }
[ConfigurationKeyName("KAFKA_PASSWORD")]
public required string Password { get; set; }
[ConfigurationKeyName("KAFKA_TOPIC")]
public required string Topic { get; set; }
我尝试通过IConfigureOptions<KafkaOptions>
via 接口进行绑定,但它要求绑定 ConfigurationSection,而我没有
_configuration
.GetSection(SectionName)
.Bind(options);
谁能知道如何解决它?
只需从配置本身绑定(需要
Microsoft.Extensions.Configuration.Binder
):就我个人而言,我会使用双下划线分隔符(
__
,请参阅文档),之后KAFKA
将允许用作KAFKA
部分(环境变量应如下所示:KAFKA__BOOTSTRAP_SERVERS
等):