Partilhar via


Use rótulos para fornecer valores de configuração por ambiente.

Muitos aplicativos precisam usar configurações diferentes para ambientes diferentes. Suponha que uma aplicação tenha um valor de configuração que defina o endpoint a ser usado para a sua base de dados de retaguarda. Os desenvolvedores de aplicativos usam um banco de dados diferente daquele usado na produção. O endpoint do banco de dados que a aplicação usa deve ser alterado à medida que a aplicação passa do desenvolvimento para a produção.

Na Configuração de Aplicativo do Azure, você pode usar rótulos para definir valores diferentes para a mesma chave. Por exemplo, você pode definir uma única chave com valores diferentes para desenvolvimento e produção. Você pode especificar qual rótulo carregar ao se conectar à Configuração do aplicativo.

Para demonstrar esta funcionalidade, irá modificar a aplicação web criada em Início Rápido: Criar uma Aplicação ASP.NET Core com a Configuração de Aplicações do Azure para usar definições de configuração diferentes para desenvolvimento e produção. Conclua o início rápido antes de prosseguir.

Especificar um rótulo ao adicionar um valor de configuração

No portal do Azure, vá para Configuration Explorer e localize a chave TestApp:Settings:FontColor que você criou no início rápido. Selecione seu menu de contexto e, em seguida, selecione Adicionar valor.

Adicionar Valor ao item do menu

No ecrã Adicionar Valor, insira um Valor de vermelho e um Rótulo de Desenvolvimento. Deixe Tipo de conteúdo vazio. Selecione Aplicar.

Carregar valores de configuração com um rótulo especificado

Por padrão, a Configuração do Aplicativo do Azure carrega apenas valores de configuração sem rótulo. Se você definiu rótulos para seus valores de configuração, convém especificar os rótulos a serem usados ao se conectar à Configuração do aplicativo.

Na seção anterior, você criou um valor de configuração diferente para o ambiente de desenvolvimento. Você usa a HostingEnvironment.EnvironmentName variável para determinar dinamicamente em qual ambiente o aplicativo é executado no momento. Para saber mais, consulte Usar vários ambientes no ASP.NET Core.

Adicione uma referência ao namespace Microsoft.Extensions.Configuration.AzureAppConfiguration para acessar as classes KeyFilter e LabelFilter .

using Microsoft.Extensions.Configuration.AzureAppConfiguration;

Carregue os valores de configuração com o rótulo correspondente ao ambiente atual passando o nome do ambiente para o Select método:

var builder = WebApplication.CreateBuilder(args);

builder.Configuration.AddAzureAppConfiguration(options =>
    {
        string endpoint = Environment.GetEnvironmentVariable("Endpoint");
        options.Connect(new Uri(endpoint), new DefaultAzureCredential())
               // Load configuration values with no label
               .Select(KeyFilter.Any, LabelFilter.Null)
               // Override with any configuration values specific to current hosting env
               .Select(KeyFilter.Any, builder.Environment.EnvironmentName);
    });

O Select método é chamado duas vezes. Na primeira vez, ele carrega valores de configuração sem rótulo. Em seguida, ele carrega os valores de configuração com o rótulo correspondente ao ambiente atual. Esses valores específicos do ambiente substituem quaisquer valores correspondentes sem rótulo. Não é necessário definir valores específicos do ambiente para cada chave. Se uma chave não tiver um valor com um rótulo correspondente ao ambiente atual, ela usará o valor sem rótulo.

Teste em diferentes ambientes

Abra o launchSettings.json arquivo no Properties diretório. Encontre a config entrada em profiles. Na environmentVariables seção, defina a variável ASPNETCORE_ENVIRONMENT para Production.

Com os novos valores definidos, crie e execute seu aplicativo.

dotnet build
dotnet run

Use um navegador da Web para ir para http://localhost:5000. Você notará que a cor da fonte é preta.

Aplicação Web em execução com configuração de produção

Atualize launchSettings.json para definir a ASPNETCORE_ENVIRONMENT variável como Development. Execute novamente dotnet run.

Você notará que a cor da fonte agora é vermelha. Isso ocorre porque a aplicação agora usa o valor de TestApp:Settings:FontColor que tem o rótulo Development. Todos os outros valores de configuração permanecem os mesmos que seus valores de produção.

Aplicação Web em execução com configuração de desenvolvimento

Próximos passos

Configuração no ASP.NET Core