Compartir a través de


Inicio rápido: adición de marcas de características a una aplicación de Azure Functions

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

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.

Habilitación de la marca de característica denominada Beta

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.

  1. 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
  2. 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 AddAzureAppConfiguration método .

    Use DefaultAzureCredential para 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 una FeatureFlagOptions acción al UseFeatureFlags método . Use FeatureFlagOptions.Select para especificar las claves y etiquetas de las marcas de características que se van a cargar y usar FeatureFlagOptions.SetRefreshInterval para 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étodo Select.

  3. 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();
    
  4. Abra Function1.cs y agregue el siguiente espacio de nombres.

    using Microsoft.FeatureManagement;
    

    Actualice el constructor para obtener una instancia de IVariantFeatureManagerSnapshot a 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;
    }
    
  5. Actualice el Run mé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

  1. 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>'
    
  2. 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.

  3. Copie la dirección URL de la función de los resultados del runtime de Azure Functions.

    Inicio rápido: depuración de funciones en VS

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

    Marca de la característica de función de inicio rápido deshabilitada

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

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

    Marca de la característica de función de inicio rápido habilitada

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.

  1. Inicie sesión en Azure Portal y después seleccione Grupos de recursos.
  2. En el cuadro de texto Filtrar por nombre, escriba el nombre del grupo de recursos.
  3. En la lista resultados, seleccione el nombre del grupo de recursos para ver la información general.
  4. Seleccione Eliminar grupo de recursos.
  5. 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.