Ir para o conteúdo do rodapé
Iron Academy Logo
Aplicação C#
Aplicação C#

Outras categorias

Acesse as configurações do aplicativo no Azure Functions

Tim Corey
23m 53s

No cenário atual de computação em nuvem, que evolui rapidamente, gerenciar as configurações de aplicativos de forma segura e flexível é fundamental, especialmente para desenvolvedores que criam soluções com o Azure Functions. Seja para implantar um aplicativo de funções pelo portal do Azure, gerenciar configurações usando as Ferramentas Principais do Azure Functions ou integrar segredos por meio do Key Vault, é essencial estruturar a configuração do seu aplicativo corretamente desde o início.

Em uma sessão prática intitulada " Acessando AppSettings em Aplicativos de Console, incluindo Secrets.json ", Tim Corey apresenta as melhores práticas para uso no ecossistema .NET . Embora o foco seja em aplicativos de console, seus conceitos se aplicam diretamente ao desenvolvimento e gerenciamento de configurações de aplicativos de funções no Azure Functions — especialmente ao trabalhar localmente, configurar um arquivo de projeto ou implantar no Serviço de Aplicativos.

Neste artigo, vamos analisar tudo isso usando a estrutura de Tim e aplicar seus ensinamentos ao desenvolvimento moderno do Azure Functions.

Por que as configurações do aplicativo são importantes para o Azure Functions

Tim começa afirmando a importância vital das configurações de aplicativos na criação de qualquer coisa além dos aplicativos .NET mais básicos. A necessidade de acessar as configurações do aplicativo em ambientes do Azure Functions é ainda mais evidente, visto que o runtime do Azure Functions espera que os valores de configuração sejam obtidos de repositórios gerenciados, como variáveis ​​de ambiente, o arquivo local.settings.json baseado em JSON ou a Configuração de Aplicativo do Azure.

"Um recurso comum que os desenvolvedores acabam desejando é o acesso a um arquivo de configurações", explica Tim aos 0:17.

Seja para uma chave de API, uma string de conexão ou um sinalizador de recurso, a flexibilidade de configuração e a segurança são fundamentais, especialmente ao implantar em plataformas de nuvem como o Microsoft Azure.

Crie a base com o Visual Studio

Às 1:24, Tim configura um projeto de console usando o Visual Studio, nomeando-o SettingsDemoApp. Embora os desenvolvedores do Azure normalmente inicializem um projeto do Azure Functions usando as Ferramentas Principais do Azure Functions, o método de Tim para estruturar e organizar o código se adapta perfeitamente. A configuração dos arquivos do projeto e a estrutura do código são fundamentos essenciais, seja em um ambiente de console ou na criação de um aplicativo Azure Functions isolado com o modelo de trabalhador isolado.

Instale os pacotes NuGet necessários.

A partir de 2:33, Tim demonstra a instalação de quatro pacotes NuGet essenciais:

  • Microsoft.Extensions.Configuration

  • Microsoft.Extensions.Configuration.Json

  • Microsoft.Extensions.Configuration.Binder

  • Microsoft.Extensions.Configuration.UserSecrets

Isso espelha o sistema de configuração de aplicativos usado pelo Azure Functions, que depende dos mesmos pacotes nos bastidores. Tim enfatiza o valor da modularidade:

"Na verdade, isso é o oposto de inchado", observa ele, já que o .NET Core evita cargas desnecessárias, permitindo que os desenvolvedores optem por participar via NuGet.

Para um aplicativo de funções típico, esses pacotes são pré-referenciados ou facilmente adicionados para oferecer suporte a lógica personalizada para configurações, injeção de dependência ou casos de uso avançados, como suporte ao Key Vault e à Configuração de Aplicativos do Azure.

Adicionar e configurar um arquivo de configurações JSON

Às 6h12, Tim cria um novo arquivo chamado appsettings.json, imitando a estrutura que você veria em local.settings.json para o desenvolvimento do Azure Functions. Ele o preenche com pares de chave-valor como:

{
  "Usuário": {
    "Primeiro nome": "Tim",
    Sobrenome: Corey
},
  "StarterCountValue": 5
}

Em funções locais, os desenvolvedores usam o arquivo local.settings.json em um formato quase idêntico para ler valores e inseri-los na lógica da aplicação por meio de IConfiguration injetado. Tim também destaca uma etapa fundamental: definir a opção "Copiar para o diretório de saída" do arquivo como "Copiar se for mais recente" — crucial para garantir que sua configuração esteja disponível em tempo de execução.

Criar manualmente o pipeline de configuração

Tim então escreve o código que configura manualmente um pipeline de configuração usando:

var construtor = novo ConstrutorDeConfiguração()
.SetBasePath(Directory.GetCurrentDirectory())
    .AddJsonFile("appsettings.json", opcional: true, reloadOnChange: true);

Embora o ambiente de execução do Azure Functions lide com esse pipeline automaticamente, a explicação de Tim esclarece como os projetos de funções obtêm valores de diferentes fontes. O uso que ele faz do método .AddJsonFile() reflete a forma como os desenvolvedores configuram o arquivo local.settings.json em seus aplicativos do Azure, com o método reloadOnChange introduzindo o conceito de atualização dinâmica das configurações durante o desenvolvimento.

Leia os valores com segurança de digitação

Tim mostra como ler configurações usando o método GetValue() às 11:00:

int count = config.GetValue<int> ("StarterCountValue");

E para configurações aninhadas, ele usa:

string firstName = config.GetValue<string> ("Usuário:Nome");

Ao trabalhar com o Azure Functions, esses mesmos padrões de sintaxe se aplicam. O uso de chaves delimitadas por dois pontos por Tim ("User:FirstName") tem um mapeamento direto em variáveis ​​de ambiente usando a sintaxe de sublinhado duplo (__):

Nome do usuário = Tim

Isso é especialmente útil ao implantar no Serviço de Aplicativos do Azure ou ao configurar por meio do portal do Azure, onde você pode substituir as configurações em tempo de execução usando configurações de aplicativo ou substituições baseadas no ambiente.

Gerencie segredos com segurança usando UserSecrets.

Às 15h, Tim apresenta o padrão secrets.json através do conceito de Segredos do Usuário, usado para armazenar dados sensíveis, como chaves de API ou strings de conexão, sem expô-los no controle de versão. Ele mostra como anexar um repositório de segredos do usuário ao seu projeto usando esta linha:

construtor.AdicionarSegredosDoUsuário<Program> ();

Ele enfatiza que a ordem importa — os Segredos do Usuário substituem as fontes de configuração anteriores, reforçando o princípio de que o último a ser alterado prevalece. Embora o Azure Functions não utilize o arquivo secrets.json diretamente, em um ambiente de nuvem de produção, você usaria o Azure Key Vault, opcionalmente com autenticação de identidade gerenciada, para obter as mesmas configurações de segurança.

Tim observa que os segredos no desenvolvimento local são um substituto para qualquer sistema seguro que você esteja usando em produção:

"Este arquivo secrets.json serve como substituto para qualquer sistema seguro que você esteja usando para armazenar seus valores reais — seja o Key Vault ou configurações de ambiente."

Executar e validar configurações

Após configurar os arquivos appsettings.json e secrets.json, Tim executa o exemplo e verifica se os segredos substituem os valores base. Isso reflete diretamente como o Azure Functions lida com substituições de várias fontes: local.settings.json, Configuração do Aplicativo do Azure, variáveis ​​de ambiente ou Key Vault.

Seja usando as Ferramentas Principais do Azure Functions pela linha de comando ou implantando pelo Visual Studio, a ordem de carregamento e a organização das configurações do aplicativo se comportam exatamente como Tim descreve.

Melhores práticas para gerenciamento de configuração

Tim conclui recomendando que você mantenha os valores de configuração que não mudam com frequência — como sinalizadores de recursos, configurações de frequência ou configurações CORS — em seu arquivo JSON e que armazene dados confidenciais, como strings de conexão e segredos, em um local seguro.

Isso está em consonância com as melhores práticas modernas para o Azure Functions, onde:

  • Os desenvolvedores usam o arquivo local.settings.json para funções locais.

  • As equipes usam o portal do Azure para as configurações do aplicativo.

  • Os segredos vão para o Cofre de Chaves

  • Os valores do repositório de configuração do aplicativo Azure ajudam a separar as configurações do código.

Essas fontes se integram ao ambiente de execução usando injeção de dependência, sem modificar os binários do aplicativo.

Considerações finais

Embora o vídeo de Tim seja sobre aplicativos de console, todas as técnicas que ele ensina se aplicam perfeitamente aos aplicativos do Azure Functions — desde a criação de arquivos de configuração, leitura de chaves e uso de identidade gerenciada até o carregamento de configurações por meio de injeção de dependência. Seja para implantar com o Visual Studio, gerenciar sua conta do Azure ou encontrar exemplos de código completos, suas dicas se aplicam diretamente às práticas reais de nuvem.

Hero Worlddot related to Acesse as configurações do aplicativo no Azure Functions
Hero Affiliate related to Acesse as configurações do aplicativo no Azure Functions

Ganhe mais compartilhando o que você ama.

Você cria conteúdo para desenvolvedores que trabalham com .NET, C#, Java, Python ou Node.js? Transforme sua expertise em renda extra!

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim