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 define a cadeia de conexão a ser usada para seu banco de dados back-end. Os desenvolvedores de aplicativos usam um banco de dados diferente daquele usado na produção. A cadeia de conexão de banco de dados que o aplicativo usa deve ser alterada à medida que o aplicativo 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 essa funcionalidade, você modificará o aplicativo Web criado em Guia de início rápido: criar um aplicativo ASP.NET Core com a Configuração do Aplicativo do Azure para usar definições de configuração diferentes para desenvolvimento versus 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.

Add Value menu item

Na tela Adicionar Valor, insira um Valor 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 =>
    {
            options.Connect(builder.Configuration.GetConnectionString("AppConfig"))
                // 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);
    });

Importante

O trecho de código anterior usa a ferramenta Gerenciador Secreto para carregar a cadeia de conexão Configuração do Aplicativo. Para obter informações sobre como armazenar a cadeia de conexão usando o Gerenciador Secreto, consulte Guia de início rápido para Configuração de Aplicativo do Azure com ASP.NET Core.

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. environmentVariables Na seção , defina a ASPNETCORE_ENVIRONMENT variável como 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.

Web application running with production configuration

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 o aplicativo agora usa o valor de TestApp:Settings:FontColor que tem o Development rótulo. Todos os outros valores de configuração permanecem os mesmos que seus valores de produção.

Web application running with development configuration

Próximos passos