Compartilhar via


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

Muitos aplicativos precisam usar configurações diferentes para ambientes diferentes. Suponha que um aplicativo tenha um valor de configuração que defina qual endpoint deve ser usado para seu banco de dados de back-end. Os desenvolvedores de aplicativos usam um banco de dados diferente do usado na produção. O endereço do banco de dados usado pelo aplicativo deve ser modificado quando o aplicativo passa do desenvolvimento para a produção.

Na Configuração de Aplicativos 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 de Aplicativos.

Para demonstrar essa funcionalidade, você modificará o aplicativo Web criado no Início Rápido: Criar um aplicativo ASP.NET Core com a Configuração de Aplicativos do Azure para usar configurações diferentes para desenvolvimento versus produção. Conclua o início rápido antes de continuar.

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

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

Adicionar item de menu de valor

Na tela Adicionar Valor, insira um Valor como vermelho e um Rótulo como Desenvolvimento. Deixe o tipo de conteúdo vazio. Selecione Aplicar.

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

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

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, confira 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 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 valores de configuração com o rótulo correspondente ao ambiente atual. Esses valores específicos do ambiente substituem todos os valores correspondentes sem rótulo. Você não precisa 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.

Testar em ambientes diferentes

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

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

dotnet build
dotnet run

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

Aplicativo Web em execução com a configuração de produção

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

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

Aplicativo Web em execução com a configuração de desenvolvimento

Próximas etapas