Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este inicio rápido, creará una marca de característica en Azure App Configuration y la usará para controlar dinámicamente la disponibilidad de una nueva página web en una aplicación Aspire sin reiniciarla ni volver a implementarla.
La compatibilidad con la administración de características amplía la característica de configuración dinámica en App Configuration. El ejemplo de este inicio rápido se basa en la aplicación Aspire introducida en el tutorial de configuración dinámica. Antes de continuar, finalice el inicio rápido y el tutorial para crear una aplicación Aspire con la configuración dinámica primero.
Prerrequisitos
Siga los documentos para crear una solución Aspire con configuración dinámica.
- Inicio rápido: Creación de una solución Aspire con App Configuration
- Tutorial: Uso de la configuración dinámica en una aplicación Aspire
Creación de una marca de características
Agregue una marca de característica denominada Beta al almacén de App Configuration (creado en los pasos de requisitos previos) y deje Etiqueta y Descripción con sus valores predeterminados. Para más información sobre cómo agregar marcas de características a un almacén mediante Azure Portal o la CLI, vaya a Creación de una marca de característica.
Agregue el siguiente valor de clave a través de la interfaz de usuario del emulador de App Configuration.
| Key | Tipo de contenido | Importancia |
|---|---|---|
| .appconfig.featureflag/Beta | application/vnd.microsoft.appconfig.ff+json; charset=utf-8 | {"id":"Beta","enabled":false} |
Las marcas de características son valores clave-valor especiales que definen características de Microsoft. Los proveedores de configuración identifican la bandera de característica por su tipo de contenido específico y el prefijo de clave. El valor de un feature flag es un objeto JSON que sigue Microsoft Feature Flag schema.
- Tipo de contenido de bandera de función:
application/vnd.microsoft.appconfig.ff+json;charset=utf-8 - Prefijo de clave de marca de característica:
.appconfig.featureflag/
Uso de una marca de características
Vaya al directorio del proyecto
Web(creado en los pasos de requisitos previos). Ejecute el siguiente comando para agregar elMicrosoft.FeatureManagement.AspNetCorepaquete Nuget.dotnet add package Microsoft.FeatureManagement.AspNetCoreAbra Program.cs y agregue una llamada al
UseFeatureFlagsmétodo dentro de laAddAzureAppConfigurationllamada. Puede conectarse a App Configuration mediante Microsoft Entra ID (recomendado) o una cadena de conexión. El siguiente fragmento de código muestra cómo usar Microsoft Entra ID.builder.AddAzureAppConfiguration( "appconfiguration", configureOptions: options => { // Load all keys that start with `TestApp:` and have no label. options.Select("TestApp:*", LabelFilter.Null); // Reload configuration if any key-values have changed. options.ConfigureRefresh(refreshOptions => refreshOptions.RegisterAll()); // Load all feature flags with no label options.UseFeatureFlags(); });Sugerencia
Cuando no se pasa ningún parámetro al método
UseFeatureFlags, carga todas las marcas de características sin etiqueta en el almacén de App Configuration. El intervalo de actualización predeterminado de las marcas de características es de 30 segundos. Puede personalizar este comportamiento a través del parámetroFeatureFlagOptions. Por ejemplo, el siguiente fragmento de código carga solo las marcas de características que comienzan con TestApp: en su nombre de clave y tienen la etiqueta dev. El código también cambia el intervalo de actualización a 5 minutos. Tenga en cuenta que el intervalo de tiempo de actualización es independiente del de los valores de clave normales.options.UseFeatureFlags(featureFlagOptions => { featureFlagOptions.Select("TestApp:*", "dev"); featureFlagOptions.CacheExpirationInterval = TimeSpan.FromMinutes(5); });Agrega la gestión de características a la colección de servicios de tu aplicación llamando a
AddFeatureManagement.Actualice Program.cs con el código siguiente.
// Existing code in Program.cs // ... ... // Add Azure App Configuration middleware to the container of services. builder.Services.AddAzureAppConfiguration(); // Add feature management to the container of services. builder.Services.AddFeatureManagement(); var app = builder.Build(); // The rest of existing code in program.cs // ... ...Al principio del archivo, agregue
using Microsoft.FeatureManagement;si no está presente.Agregue una nueva página de Razor denominada Beta.razor en el directorio Components/Pages .
@page "/beta" @inject IFeatureManager FeatureManager @if (isBetaEnabled) { <h1>This is the beta website.</h1> } else { <h1>Not found.</h1> } @code { private bool isBetaEnabled; protected override async Task OnInitializedAsync() { isBetaEnabled = await FeatureManager.IsEnabledAsync("Beta"); } }Abra _Imports.razor e importe el espacio de nombres de gestión de características.
@using Microsoft.FeatureManagementAbra NavMenu.razor en el directorio Components/Layout .
Inserte
IVariantFeatureManageren la parte superior del archivo.@inject IVariantFeatureManager FeatureManager <div class="top-row ps-3 navbar navbar-dark"> <div class="container-fluid"> <a class="navbar-brand" href="">AspireApp</a> </div> </div>Agregue el código siguiente.
// Existing code // ... ... <div class="nav-scrollable" onclick="document.querySelector('.navbar-toggler').click()"> <nav class="nav flex-column"> // Existing code // ... ... @if (isBetaEnabled) { <div class="nav-item px-3"> <NavLink class="nav-link" href="beta"> <span class="bi bi-list-nested" aria-hidden="true"></span> Beta </NavLink> </div> } </nav> </div> @code { private bool isBetaEnabled; protected override async Task OnInitializedAsync() { isBetaEnabled = await FeatureManager.IsEnabledAsync("Beta"); } }
Ejecución de la aplicación de forma local
Ejecute el proyecto
AppHost. Vaya al panel de Aspire y abra la aplicación web.En Azure Portal, vaya al administrador de características de su almacén de App Configuration y busque la marca de características Beta. Habilite la marca activando la casilla en Habilitado.
Actualice la página varias veces. Cuando pase la ventana de tiempo del intervalo de actualización, la página se mostrará con contenido actualizado.
Haga clic en el botón Beta . Le llevará a la página beta que habilitó dinámicamente.
Ejecución de la aplicación de forma local
Ejecute el proyecto
AppHost. Vaya al panel de Aspire y abra la aplicación web.Vaya al emulador y edite el valor de la marca de características para habilitarlo.
Key Importancia appconfig.featureflag/Beta {"id":"Beta","enabled":true} Actualice la página varias veces. Cuando pase la ventana de tiempo del intervalo de actualización, la página se mostrará con contenido actualizado.
Haga clic en el botón Beta . Le llevará a la página beta que habilitó dinámicamente.
Pasos siguientes
En este inicio rápido, ha agregado la funcionalidad de administración de características a una aplicación de Aspire sobre la configuración dinámica. La biblioteca Microsoft.FeatureManagement.AspNetCore ofrece integración con aplicaciones ASP.NET Core, incluida la administración de características en acciones del controlador MVC, páginas de razor, vistas, rutas y middleware. En l siguiente documento encontrará la lista completa de características de la biblioteca de administración de características de .NET.
Aunque una marca de característica permite activar o desactivar la funcionalidad en la aplicación, es posible que quieras personalizar una marca de característica en función de la lógica de la aplicación. Los filtros de características permiten habilitar una marca de característica condicionalmente. Para obtener más información, continúe con el siguiente tutorial.
Azure App Configuration ofrece filtros de características integrados que permiten activar una marca de característica solo durante un período específico o para un público específico de la aplicación. Para obtener más información, continúe con el siguiente tutorial.
Para habilitar la funcionalidad de administración de características para otros tipos de aplicaciones, continúe con los siguientes tutoriales.
Para más información sobre la administración de marcas de características en Azure App Configuration, continúe con el siguiente tutorial.