escenarios de Azure Functions

A menudo, se crean sistemas que reaccionan a una serie de eventos críticos. Independientemente de si va a crear una API web, responder a los cambios de la base de datos o procesar flujos de eventos o mensajes, puede usar Azure Functions para implementar estos sistemas.

En muchos casos, una función se integra con una matriz de servicios en la nube para proporcionar implementaciones con numerosas características. En la lista siguiente se muestran escenarios comunes (pero no exhaustivos) para Azure Functions.

Seleccione su lenguaje de desarrollo en la parte superior de este artículo.

Procesar cargas de archivos

Puede usar funciones de varias maneras de procesar archivos dentro o fuera de un contenedor de Blob Storage. Para más información sobre las opciones para la operación de desencadenamiento en un contenedor de blobs, consulte Trabajar con blobs en la documentación de procedimientos recomendados.

Por ejemplo, en una solución comercial, un sistema asociado puede enviar información del catálogo de productos como archivos en Blob Storage. Puede usar una función desencadenada por blobs para validar, transformar y procesar los archivos en el sistema principal a medida que los carga.

Diagrama de un proceso de carga de archivos mediante Azure Functions.

En los tutoriales siguientes se usa un desencadenador de blobs de Azure (basado en Azure Event Grid) para procesar archivos en un contenedor de blobs:

Por ejemplo, puede usar el desencadenador Blob con una suscripción a eventos en contenedores de blobs:

[FunctionName("ProcessCatalogData")]
public static async Task Run([BlobTrigger("catalog-uploads/{name}", Source = BlobTriggerSource.EventGrid, Connection = "<NAMED_STORAGE_CONNECTION>")] Stream myCatalogData, string name, ILogger log)
{
    log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myCatalogData.Length} Bytes");

    using (var reader = new StreamReader(myCatalogData))
    {
        var catalogEntry = await reader.ReadLineAsync();
        while(catalogEntry !=null)
        {
            // Process the catalog entry
            // ...

            catalogEntry = await reader.ReadLineAsync();
        }
    }
}

Procesamiento de eventos y flujos en tiempo real

Las aplicaciones en la nube, los dispositivos IoT y los dispositivos de red generan y recopilan una gran cantidad de datos de clientes. Azure Functions puede procesar esos datos casi en tiempo real como la ruta de acceso activa y almacenarlos en Azure Cosmos DB para usarlos en un panel de análisis.

Las funciones también pueden usar desencadenadores de eventos de baja latencia, como Event Grid y salidas en tiempo real, como SignalR, para procesar datos casi en tiempo real.

Diagrama de un proceso de flujo en tiempo real mediante Azure Functions.

Por ejemplo, use el desencadenador de Event Hubs para leer desde un centro de eventos y el enlace de salida para escribir en un centro de eventos después de desagrupar y transformar los eventos:

[FunctionName("ProcessorFunction")]
public static async Task Run(
    [EventHubTrigger(
        "%Input_EH_Name%",
        Connection = "InputEventHubConnectionSetting",
        ConsumerGroup = "%Input_EH_ConsumerGroup%")] EventData[] inputMessages,
    [EventHub(
        "%Output_EH_Name%",
        Connection = "OutputEventHubConnectionSetting")] IAsyncCollector<SensorDataRecord> outputMessages,
    PartitionContext partitionContext,
    ILogger log)
{
    var debatcher = new Debatcher(log);
    var debatchedMessages = await debatcher.Debatch(inputMessages, partitionContext.PartitionId);

    var xformer = new Transformer(log);
    await xformer.Transform(debatchedMessages, partitionContext.PartitionId, outputMessages);
}

Crea aplicaciones habilitadas para IA

Utiliza Azure Functions para poner a disposición de los clientes de IA datos y APIs y añadir razonamiento de IA a aplicaciones impulsadas por eventos.

Pon tus datos y APIs a disposición de la IA

Los clientes y agentes de IA necesitan herramientas que proporcionen acceso controlado a datos empresariales, APIs y lógica de aplicaciones. Puedes usar Azure Functions para construir y alojar servidores remotos Model Context Protocol (MCP) que exponen estas capacidades como herramientas. Functions ofrece alojamiento gestionado, autenticación, redes, monitorización y escalado para tu servidor MCP.

Por ejemplo, podrías exponer inventario de productos, datos de cuentas de clientes o una API empresarial existente como herramientas que un cliente de IA puede descubrir y llamar.

Diagrama que muestra a un cliente de IA llamando a un servidor MCP remoto alojado por Azure Functions, que proporciona acceso controlado a APIs y datos empresariales.

Añadir razonamiento de IA a eventos empresariales

Algunos eventos de negocio requieren razonar antes de que tu aplicación pueda decidir qué hacer a continuación. Las habilidades alojadas en Azure Functions te permiten definir trabajo impulsado por IA en Markdown y iniciarlo desde calendarios, solicitudes HTTP, mensajes de cola, cambios de almacenamiento y otros eventos. La habilidad alojada puede llamar a herramientas y servicios antes de devolver un resultado o realizar una acción.

Por ejemplo, una habilidad alojada puede clasificar una queja entrante y encaminarla a la cola correspondiente. Para trabajos más complejos, un flujo de trabajo dinámico puede crear un plan duradero y de varios pasos que ejecuta tareas en paralelo, espera condiciones externas y se reanuda tras el reinicio del trabajador.

Diagrama que muestra eventos, mensajes y calendarios que inician una habilidad alojada en Azure Functions, que utiliza un modelo Foundry y puede llamar a herramientas, APIs, conectores y acciones.

Ejecutar tareas programadas

Functions le permite ejecutar el código en función de una programación de Cron que defina.

Para obtener más información, consulte Crear una función en el portal de Azure que se ejecuta según una programación.

Por ejemplo, podría analizar una base de datos de clientes de servicios financieros para entradas duplicadas cada 15 minutos para evitar que varias comunicaciones salgan al mismo cliente.

Diagrama de una tarea programada en la que una función limpia una base de datos cada 15 minutos desduplicando entradas basadas en lógica de negocios.

Para obtener ejemplos, consulte estos fragmentos de código:

[FunctionName("TimerTriggerCSharp")]
public static void Run([TimerTrigger("0 */15 * * * *")]TimerInfo myTimer, ILogger log)
{
    if (myTimer.IsPastDue)
    {
        log.LogInformation("Timer is running late!");
    }
    log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");

    // Perform the database deduplication
}

Creación de una API web escalable

Una función desencadenada por HTTP define un punto de conexión HTTP. Estos puntos de conexión ejecutan código de función que puede conectarse directamente a otros servicios o mediante extensiones de enlace. Puede componer los puntos de conexión en una API basada en web.

También puede usar un punto de conexión de función desencadenada por HTTP como una integración de webhook, como webhooks de GitHub. De este modo, puede crear funciones que procesen datos de eventos GitHub. Para obtener más información, consulte Azure Functions HTTP Trigger.

Diagram de procesamiento de una solicitud HTTP mediante Azure Functions.

Para obtener ejemplos, consulte estos fragmentos de código:

[FunctionName("InsertName")]
public static async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Function, "post")] HttpRequest req,
    [CosmosDB(
        databaseName: "my-database",
        collectionName: "my-container",
        ConnectionStringSetting = "CosmosDbConnectionString")]IAsyncCollector<dynamic> documentsOut,
    ILogger log)
{
    string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
    dynamic data = JsonConvert.DeserializeObject(requestBody);
    string name = data?.name;

    if (name == null)
    {
        return new BadRequestObjectResult("Please pass a name in the request body json");
    }

    // Add a JSON document to the output container.
    await documentsOut.AddAsync(new
    {
        // create a random ID
        id = System.Guid.NewGuid().ToString(),
        name = name
    });

    return new OkResult();
}

Compilar un flujo de trabajo sin servidor

Las funciones suelen servir como componente de proceso en una topología de flujo de trabajo sin servidor, como un flujo de trabajo de Logic Apps. También puede crear orquestaciones de larga duración mediante la extensión Durable Functions. Para obtener más información, consulte Durable Functions overview.

Diagrama de combinación de una serie de flujos de trabajo serverless específicos mediante Azure Functions.

Tenga en cuenta estos ejemplos:

Responder a cambios en una base de datos

Algunos procesos necesitan registrar, auditar o realizar otras operaciones cuando cambian los datos almacenados. Los desencadenadores de Functions proporcionan una buena manera de recibir notificaciones de los cambios de datos para inicializar dicha operación.

Diagrama de una función que se usa para responder a los cambios de la base de datos.

Tenga en cuenta estos ejemplos:

Crear sistema de mensajes confiables

Puede usar Functions con Azure servicios de mensajería para crear soluciones avanzadas de mensajería controladas por eventos.

Por ejemplo, puede usar desencadenadores en colas de Azure Storage como una manera de encadenar una serie de ejecuciones de funciones. O bien, use colas y desencadenadores de Service Bus para un sistema de pedidos en línea.

Diagrama de Azure Functions en un sistema de mensajería confiable.

En estos artículos se muestra cómo escribir la salida en una cola de almacenamiento:

En estos artículos, se muestra cómo desencadenar desde una cola o tema de Azure Service Bus.

Paso siguiente