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