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 aplicación de Azure Functions y usará marcas de características en ella. La administración de características de Azure App Configuration se usa para almacenar de forma centralizada todas las marcas de características y controlar sus estados.
Requisitos previos
- Una cuenta de Azure con una suscripción activa. cree una de forma gratuita.
- Un almacén de App Configuration, como se muestra en el tutorial para crear un almacén.
- Visual Studio con la carga de trabajo de desarrollo de Azure.
Agregar marca de característica
Agregue una marca de característica denominada Beta al almacén de App Configuration y deje Etiqueta y Descripción con sus valores predeterminados. Para obtener 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.
Crear una aplicación de funciones
Cree una aplicación de Azure Functions con Visual Studio seleccionando la plantilla azure Functions (C#). Esta plantilla le guía a través de la configuración de opciones esenciales para el proyecto. Para obtener instrucciones detalladas, consulte Desarrollo de Azure Functions mediante Visual Studio.
Use la tabla siguiente como referencia para los parámetros clave al crear la aplicación de funciones.
| Configuración | Value |
|---|---|
| Trabajador de funciones | .NET 8.0 (aislado) |
| Función | Desencadenador HTTP |
| Nivel de autorización | Anónimo |
Nota:
Azure App Configuration se puede usar con Azure Functions en el modelo de trabajo aislado o en el modelo en proceso. En esta guía de inicio rápido se utiliza el modelo de trabajador aislado como ejemplo. Puede encontrar ejemplos de código completos para ambos modelos en el repositorio de GitHub de Azure App Configuration.
Conexión a un almacén de App Configuration
Puede conectarse al almacén de App Configuration mediante Microsoft Entra ID (recomendado) o una cadena de conexión.
Haga clic con el botón derecho en el proyecto y seleccione Administrar paquetes NuGet. En la pestaña Examinar , busque y agregue la versión estable más reciente de los siguientes paquetes NuGet al proyecto.
- Microsoft.Azure.AppConfiguration.Functions.Worker
- Microsoft.FeatureManagement
- Azure.Identity
Abra Program.cs y actualice el código de la manera siguiente. Para agregar Azure App Configuration como origen de configuración adicional, llame al
AddAzureAppConfigurationmétodo .Use
DefaultAzureCredentialpara autenticarse en el almacén de App Configuration. Siga las instrucciones para asignar tu credencial al rol Lector de datos de App Configuration. Asegúrese de dejar tiempo suficiente para que el permiso se propague antes de ejecutar la aplicación.using Azure.Identity; using Microsoft.Azure.Functions.Worker.Builder; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; using Microsoft.FeatureManagement; var builder = FunctionsApplication.CreateBuilder(args); // Connect to Azure App Configuration builder.Configuration.AddAzureAppConfiguration(options => { Uri endpoint = new(Environment.GetEnvironmentVariable("AZURE_APPCONFIG_ENDPOINT") ?? throw new InvalidOperationException("The environment variable 'AZURE_APPCONFIG_ENDPOINT' is not set or is empty.")); options.Connect(endpoint, new DefaultAzureCredential()) // Load all feature flags with no label. To load feature flags with specific keys and labels, set via FeatureFlagOptions.Select. // Use the default refresh interval of 30 seconds. It can be overridden via FeatureFlagOptions.SetRefreshInterval. .UseFeatureFlags(); });El
UseFeatureFlags()método indica al proveedor que cargue las marcas de características. De forma predeterminada, todas las marcas de características sin etiquetas se cargan y se actualizan cada 30 segundos. El comportamiento de selección y actualización de las banderas de características se configura independientemente de otros valores de configuración clave. Puede personalizar estos comportamientos pasando unaFeatureFlagOptionsacción alUseFeatureFlagsmétodo . UseFeatureFlagOptions.Selectpara especificar las claves y etiquetas de las marcas de características que se van a cargar y usarFeatureFlagOptions.SetRefreshIntervalpara invalidar el intervalo de actualización predeterminado.Sugerencia
Si no quiere que se cargue ninguna configuración que no sea la de las marcas de características en la aplicación, puede llamar a
options.Select("_")para cargar solo una clave ficticia no existente"_". De forma predeterminada, todos los valores de clave de configuración sin etiquetas en el almacén de configuración de la aplicación se cargarán si no se invoca a ningún métodoSelect.Actualice el archivo Program.cs para habilitar la actualización automática de la marca de características en cada ejecución de función mediante la adición del middleware de Azure App Configuration. También registra el servicio de administración de características, lo que le permite insertarlo y usarlo en el código de función más adelante.
// Connect to Azure App Configuration builder.Configuration.AddAzureAppConfiguration(options => { // Omitted the code added in the previous step. }); // Add Azure App Configuration middleware and feature management to the service collection. builder.Services .AddAzureAppConfiguration() .AddFeatureManagement(); // Use Azure App Configuration middleware for dynamic configuration and feature flag refresh. builder.UseAzureAppConfiguration(); builder.ConfigureFunctionsWebApplication(); builder.Build().Run();Abra Function1.cs y agregue el siguiente espacio de nombres.
using Microsoft.FeatureManagement;Actualice el constructor para obtener una instancia de
IVariantFeatureManagerSnapshota través de la inyección de dependencias.private readonly IVariantFeatureManagerSnapshot _featureManager; private readonly ILogger<Function1> _logger; public Function1(IVariantFeatureManagerSnapshot featureManager, ILogger<Function1> logger) { _featureManager = featureManager; _logger = logger; }Actualice el
Runmétodo para devolver un mensaje de respuesta basado en el estado de la marca de característica.[Function("Function1")] public async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequest req) { _logger.LogInformation("C# HTTP trigger function processed a request."); // Read feature flag string featureName = "Beta"; bool featureEnabled = await _featureManager.IsEnabledAsync(featureName, req.HttpContext.RequestAborted); return new OkObjectResult(featureEnabled ? $"The Feature Flag '{featureName}' is turned ON!" : $"The Feature Flag '{featureName}' is turned OFF"); }
Prueba local de la función
Establezca la variable de entorno.
Establezca la variable de entorno denominada AZURE_APPCONFIG_ENDPOINT en el punto de conexión del almacén de App Configuration que se encuentra en la Información general del almacén en Azure Portal.
Si usa el símbolo del sistema de Windows, ejecute el siguiente comando y reinícielo para que se aplique el cambio:
setx AZURE_APPCONFIG_ENDPOINT "<endpoint-of-your-app-configuration-store>"Si usa PowerShell, ejecute el siguiente comando:
$Env:AZURE_APPCONFIG_ENDPOINT = "<endpoint-of-your-app-configuration-store>"Si usa macOS o Linux, ejecute el siguiente comando:
export AZURE_APPCONFIG_ENDPOINT='<endpoint-of-your-app-configuration-store>'Presione F5 para probar la función. Si se le solicita, acepte la solicitud de Visual Studio para descargar e instalar las herramientas de Azure Functions Core (CLI). También es preciso que habilite una excepción de firewall para que las herramientas para controlen las solicitudes de HTTP.
Copie la dirección URL de la función de los resultados del runtime de Azure Functions.
Pegue la dirección URL de la solicitud HTTP en la barra de direcciones del explorador. En la imagen siguiente se muestra la respuesta que indica que la marca de la característica Beta está deshabilitada.
En el portal de Azure, vaya a la tienda de configuración de aplicaciones. En Operaciones, seleccione Administrador de características, busque la marca de características Beta y establezca el botón de alternancia Habilitado en Activado.
Actualice el explorador varias veces. Cuando se pasa la ventana de tiempo del intervalo de actualización, la página cambia para indicar que la marca de característica Beta está activada, como se muestra en la imagen.
Limpieza de recursos
Si no quiere seguir usando los recursos que se han creado en este artículo, elimine el grupo de recursos se que ha creado con el fin de evitar cargos.
Importante
La eliminación de un grupo de recursos es irreversible. El grupo de recursos y todos los recursos que contiene se eliminan permanentemente. Asegúrese de no eliminar accidentalmente el grupo de recursos o los recursos equivocados. Si creó los recursos para este artículo en un grupo de recursos que contenga los recursos que desee conservar, elimine cada recurso de forma individual desde su panel respectivo, en lugar de eliminar el grupo de recursos.
- Inicie sesión en Azure Portal y después seleccione Grupos de recursos.
- En el cuadro de texto Filtrar por nombre, escriba el nombre del grupo de recursos.
- En la lista resultados, seleccione el nombre del grupo de recursos para ver la información general.
- Seleccione Eliminar grupo de recursos.
- Se le pedirá que confirme la eliminación del grupo de recursos. Escriba el nombre del grupo de recursos para confirmar y seleccione Eliminar.
Transcurridos unos instantes, el grupo de recursos y todos sus recursos se eliminan.
Pasos siguientes
En este inicio rápido, ha creado una marca de características y la ha usado con Azure Functions.
En l siguiente documento encontrará la lista completa de características de la biblioteca de administración de características de .NET.
Para más información sobre la administración de marcas de características en Azure App Configuration, continúe con el siguiente tutorial.