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 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