Compartir a través de


Inicio rápido: Creación de una aplicación de Azure Functions con Azure App Configuration

En este inicio rápido se muestra cómo centralizar y administrar la configuración de la aplicación de Azure Functions fuera del código mediante Azure App Configuration. Con la integración del proveedor de configuración de .NET, puede agregar App Configuration como origen de configuración adicional con solo unos sencillos cambios de código.

Requisitos previos

Agregar un par clave-valor

Agregue el siguiente par clave-valor al almacén de App Configuration y deje Etiqueta y Tipo de contenido con sus valores predeterminados. Para obtener más información sobre cómo agregar pares clave-valor a un almacén mediante Azure Portal o la CLI, vaya a Creación de un par clave-valor.

Clave Importancia
TestApp:Settings:Message Datos de Azure App Configuration

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 Importancia
Ejecutor 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. Este inicio rápido utiliza el modelo de trabajo 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
    • 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;
    
    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 keys that start with `TestApp:` and have no label
               .Select("TestApp:*");
    });
    
  3. Abra Function1.cs y agregue el siguiente espacio de nombres.

    using Microsoft.Extensions.Configuration;
    

    Actualice el constructor para obtener una instancia de IConfiguration a través de la inyección de dependencias.

    private readonly IConfiguration _configuration;
    private readonly ILogger<Function1> _logger;
    
    public Function1(IConfiguration configuration, ILogger<Function1> logger)
    {
        _configuration = configuration;
        _logger = logger;
    }
    
  4. Actualice el método Run para que lea los valores de la configuración.

    [Function("Function1")]
    public IActionResult Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequest req)
    {
        _logger.LogInformation("C# HTTP trigger function processed a request.");
    
        // Read configuration data
        string key = "TestApp:Settings:Message";
        string? message = _configuration[key];
    
        return new OkObjectResult(message ?? $"Please create a key-value with the key '{key}' in Azure App Configuration.");
    }
    

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. La siguiente imagen muestra la respuesta en el explorador para la solicitud GET local devuelta por la función.

    Inicio rápido: inicio de funciones locales

Gestionar los parámetros del desencadenador con referencias de App Configuration

Los desencadenadores de Azure Functions definen cómo se invoca una función. Los atributos de desencadenador, como los nombres de cola o los nombres de base de datos, se cargan en el momento de inicio del host y no pueden recuperar directamente valores de Azure App Configuration. Para administrar estos parámetros, puede usar la característica de referencia de App Configuration disponible para Azure Functions y App Service.

La característica de referencia de App Configuration permite hacer referencia a los valores clave almacenados en Azure App Configuration directamente desde la configuración de la aplicación. Azure Functions resuelve estas referencias al inicio, lo que le permite administrar parámetros de desencadenador de forma centralizada y segura.

Por ejemplo, considere una aplicación de funciones desencadenada por cola. En lugar de especificar el nombre de la cola directamente en el atributo trigger, puede hacer referencia a un valor de clave almacenado en Azure App Configuration.

  1. En el almacén de Azure App Configuration, agregue un valor de clave para el nombre de la cola:

    Clave Importancia
    TestApp:Storage:QueueName <El nombre de la cola en la cuenta de almacenamiento>
  2. En su aplicación de funciones, seleccione Configuración ->Variables de entorno ->Configuración de la aplicación en el portal de Azure, y cree una configuración de aplicación que haga referencia a la clave de Configuración de la aplicación:

    Nombre Importancia
    MyQueueName @Microsoft.AppConfiguration(Endpoint=<your-store-endpoint>; Key=TestApp:Storage:QueueName)

    Sugerencia

    Si tiene varios valores de clave en Azure App Configuration, puede exportarlos por lotes como referencias de App Configuration a Azure Functions mediante Azure Portal o la CLI.

  3. Habilite la identidad administrada para la aplicación de Azure Functions y asígnele el rol Lector de datos de App Configuration para el almacén de App Configuration. Para obtener instrucciones detalladas sobre cómo configurar referencias de App Configuration, consulte Uso de referencias de App Configuration en App Service y Azure Functions.

  4. Actualice la función desencadenada por la cola para usar la configuración de la aplicación:

    [Function("QueueTriggeredFunction")]
    public void Run([QueueTrigger(queueName: "%MyQueueName%")] QueueMessage message)
    {
        _logger.LogInformation($"C# Queue trigger function processed: {message.MessageText}");
    }
    

    En tiempo de ejecución, Azure Functions resuelve el %MyQueueName% marcador de posición en el valor almacenado en Azure App Configuration, lo que le permite administrar los parámetros de desencadenador de forma centralizada sin codificarlos de forma rígida en el código de función.

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, integrará Azure App Configuration con una aplicación de Azure Functions. Para obtener información sobre cómo habilitar la aplicación de funciones para actualizar dinámicamente las opciones de configuración, continúe con el siguiente tutorial.

Para obtener información sobre cómo usar marcas de características desde Azure App Configuration dentro de la aplicación de Azure Functions, continúe con el tutorial siguiente.

Para aprender a usar una identidad administrada de Azure para simplificar el acceso a App Configuration, continúe con el siguiente tutorial.