Uso de etiquetas para proporcionar valores de configuración para cada entorno.

Muchas aplicaciones deben usar diferentes configuraciones en distintos entornos. Supongamos que una aplicación tiene un valor de configuración que define la cadena de conexión que se debe usar para la base de datos de back-end. Los desarrolladores de la aplicación usan una base de datos distinta de la que se usa en producción. La cadena de conexión de base de datos que la aplicación usa debe cambiarse a medida que la aplicación pasa del entorno de desarrollo a uno de producción.

En Azure App Configuration, puede usar etiquetas para definir valores diferentes para la misma clave. Por ejemplo, puede definir una clave única con valores diferentes para desarrollo y producción. Puede especificar qué etiqueta se va a cargar al conectarse a App Configuration.

Para demostrar esta funcionalidad, modificará la aplicación web creada en el Inicio rápido: Creación de una aplicación ASP.NET Core con Azure App Configuration para que use opciones de configuración distintas para el desarrollo y la producción. Complete la guía de inicio rápido antes de continuar.

Especificación de una etiqueta al agregar un valor de configuración

En Azure Portal, vaya al Explorador de configuración y busque la clave TestApp:Settings:FontColor que creó en la guía de inicio rápido. Seleccione el menú contextual y, a continuación, seleccione Agregar valor.

Add Value menu item

En la pantalla Agregar valor, escriba un Valor de red y una Etiqueta de Development. Deje el Tipo de contenido vacío. Seleccione Aplicar.

Cargar valores de configuración con una etiqueta especificada

De forma predeterminada, Azure App Configuration solo carga los valores de configuración sin etiqueta. Si definió etiquetas para los valores de configuración, querrá especificar las etiquetas que se van a usar al conectarse a App Configuration.

En la sección anterior, creó un valor de configuración diferente para el entorno de desarrollo. Use la variable HostingEnvironment.EnvironmentName para determinar de forma dinámica en qué entorno se está ejecutando actualmente la aplicación. Para obtener más información, consulte Usar varios entornos en ASP.NET Core.

Agregue una referencia al espacio de nombres Microsoft.Extensions.Configuration.AzureAppConfiguration para acceder a las clases KeyFilter y LabelFilter.

using Microsoft.Extensions.Configuration.AzureAppConfiguration;

Cargue los valores de configuración con la etiqueta correspondiente al entorno actual. Para ello, pase el nombre del entorno al método Select:

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

El fragmento de código anterior usa la herramienta Secret Manager para cargar la cadena de conexión de App Configuration. Para obtener información sobre cómo almacenar la cadena de conexión mediante Secret Manager, consulte Inicio rápido: Creación de una aplicación ASP.NET Core con Azure App Configuration.

Se llama dos veces al método Select. La primera vez, carga los valores de configuración sin etiqueta. A continuación, carga los valores de configuración con la etiqueta correspondiente al entorno actual. Estos valores específicos del entorno invalidan a todos los valores correspondientes sin etiqueta. No es necesario definir valores específicos del entorno para cada clave. Si una clave no tiene algún valor con una etiqueta que corresponda al entorno actual, se usará el valor sin etiqueta.

Pruebas en entornos diferentes

Abra el archivo launchSettings.json en el directorio Properties. Busque la entrada config en profiles. En la sección environmentVariables, establezca la variable ASPNETCORE_ENVIRONMENT en Production.

Una vez establecidos los nuevos valores, compile y ejecute la aplicación.

dotnet build
dotnet run

Use un explorador web para ir a http://localhost:5000. Observará que el color de la fuente es negro.

Web application running with production configuration

Actualice launchSettings.json para establecer la variable ASPNETCORE_ENVIRONMENT en Development. Vuelva a ejecutar dotnet run.

Observará que el color de fuente ahora es rojo. Esto se debe a que la aplicación ahora usa el valor de TestApp:Settings:FontColor que tiene la etiqueta Development. Todos los demás valores de configuración siguen siendo los mismos que los valores de producción.

Web application running with development configuration

Pasos siguientes