.NET 5 + Azure App Configuration: simplificando o uso de configurações nos mais variados projetos

Renato Groffe
Azure na Pratica
Published in
4 min readDec 21, 2020

Venho abordando o uso do Azure App Configuration como solução para melhorar o gerenciamento de itens de configuração há algum tempo, disponibilizando diversos exemplos em que o mesmo é empregado em aplicações ASP.NET Core. Ainda neste ano de 2020 publiquei inclusive um artigo sobre esse serviço aqui neste blog:

ASP.NET Core: melhorando o gerenciamento de configurações com Azure App Configuration e Key Vault

Embora em ocasiões anteriores eu tenha focado em projetos Web baseados no ASP.NET Core, deve-se destacar também que podemos utilizar o Azure App Configuration em praticamente qualquer tipo de aplicação baseada em .NET 5, .NET Core ou até mesmo legados em .NET Full Framework.

Neste último sábado participei de mais um Azure Weekend, evento online e gratuito promovido pelo Azure na Prática. Novamente realizei uma apresentação sobre o Azure App Configuration, desta vez indo além com exemplos criados em .NET 5 e demonstrando como habilitar o uso deste serviço em Web Apps, Console Applications e Worker Services. A gravação está disponível no YouTube e pode ser assistida gratuitamente:

E aproveito este espaço para um convite…

Que tal participar do treinamento online pioneiro no Brasil sobre GitHub Actions e promovido pelo Azure na Prática, agora com aulas gravadas e uma primeira sessão ao vivo com resolução de dúvidas durante o dia 23/01/2021 (sábado)?

Acompanhe com comodidade e a qualquer tempo os diversos módulos deste treinamento, em que serão cobertas boas práticas + estratégias de build/deployment e o uso desta solução de automação com tecnologias como Docker, Kubernetes, Azure App Service, Azure Functions e outros serviços da nuvem Microsoft!

Acesse então o link a seguir para efetuar sua inscrição com um desconto especial de R$ 100,00 (inclui certificado e grupo para resolução de dúvidas durante e após o curso):

https://bit.ly/anp-githubactions-desc-100-blog-groffe

O grande trunfo do Azure App Configuration está justamente na facilidade de compartilhar itens de configuração entre diversos projetos de maneira segura, além da possibilidade de atualização destas definições em uma instância de uma aplicação sem que a mesma seja reiniciada (ou um container com a mesma seja descartado, dando lugar a uma nova estrutura deste tipo).

No caso de aplicações Web (MVC, REST API, Razor Pages) devemos adicionar o package Microsoft.Azure.AppConfiguration.AspNetCore ao projeto correspondente:

Na classe Program uma chamada ao método AddAzureAppConfiguration possibilitará a integração com o App Configuration, além de permitir que se definam itens de configuração sujeitos a update automático (sem um restart da aplicação):

A classe Startup também passará por alterações:

  • O método AddAzureAppConfiguration será acionado em ConfigureServices;
  • Já uma chamada a UseAzureAppConfiguration ativará o middleware do Azure App Configuration em Configure.

Para ter acesso ao código-fonte deste projeto no GitHub acesse o link:

ASP.NET Core 5 + API REST + Swagger + FluentValidation + Azure Service Bus + Tópico + Azure App Configuration + Application Insights + Redis + SQL Server + Dockerfile + Manipulação de Ações

Console Apps também podem se beneficiar do uso do Azure App Configuration, bastando para isto adicionar o package Microsoft.Extensions.Configuration.AzureAppConfiguration a tais projetos:

É o caso destes 2 projetos que disponibilizei no GitHub:

.NET 5 + Console Application + Injeção de Dependências + Azure Service Bus + Tópico + Redis + Azure App Configuration + Serilog + Manipulação de Ações

.NET 5 + Console Application + Injeção de Dependências + Azure Service Bus + Tópico + SQL Server + Dapper.Contrib + Azure App Configuration + Serilog + Manipulação de Ações

Em ambos os casos criei uma classe Startup para a configuração do Azure App Configuration (ativado por meio do método AddAzureAppConfiguration) e de dependências:

No caso específico de um Worker Service faremos também uso do package Microsoft.Extensions.Configuration.AzureAppConfiguration, por mais que a infraestrutura do projeto derive do ASP.NET Core:

A ativação do Azure App Configuration acontecerá na classe Program, através de uma chamada ao método AddAzureAppConfiguration em ConfigureAppConfiguration:

Esse projeto também está disponível no GitHub:

.NET 5 + Worker Service + Azure Service Bus + Tópico + Redis + Azure App Configuration + MongoDB + Manipulação de Ações + Dockerfile

Como complemento e atendendo a sugestões, deixo aqui também um link com um exemplo de como ativar o App Configuration em um projeto baseado em Azure Functions (no momento da publicação deste artigo esse serviço ainda emprega o .NET Core 3.1):

.NET Core + Azure Functions 3.x + HTTP Trigger + Azure App Configuration + MongoDB + Redis + Consulta Cotações de Ações

--

--

Renato Groffe
Azure na Pratica

Microsoft Most Valuable Professional (MVP), Multi-Plataform Technical Audience Contributor (MTAC), Software Engineer, Technical Writer and Speaker