Eu tenho uma lista de variáveis de ambiente localizadas no pod do Kubernetes onde meu aplicativo está hospedado, não possui seções, apenas uma lista de variáveis semelhante a esta:
KAFKA_BOOTSTRAP_SERVERS
KAFKA_PASSWORD
KAFKA_TOPIC
KAFKA_USERNAME
qual é a melhor maneira de mapeá-lo para minha classe de opções
[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; }
Tento vincular via IConfigureOptions<KafkaOptions>
interface, mas é exigente ConfigurationSection para vincular, que não tenho
_configuration
.GetSection(SectionName)
.Bind(options);
Alguém pode saber como resolver isso?
Basta vincular a partir da própria configuração (requer
Microsoft.Extensions.Configuration.Binder
):Pessoalmente, eu usaria o separador de sublinhado duplo (
__
, consulte a documentação ), apósKAFKA
o qual permitiria usarKAFKA
como seção (as variáveis env devem ser semelhantes a:KAFKA__BOOTSTRAP_SERVERS
etc.):