Cenários do Azure Functions

Muitas vezes, você cria sistemas que reagem a uma série de eventos críticos. Se você estiver criando uma API Web, respondendo a alterações de banco de dados ou processando fluxos de eventos ou mensagens, você pode usar Azure Functions para implementar esses sistemas.

Em muitos casos, uma função integra-se a uma matriz de serviços de nuvem para fornecer implementações ricas em recursos. A lista a seguir mostra cenários comuns (mas não exaustivos) para Azure Functions.

Selecione sua linguagem de desenvolvimento na parte superior do artigo.

Processar uploads de arquivo

Você pode usar funções de várias maneiras para processar arquivos dentro ou fora de um contêiner de armazenamento de blobs. Para saber mais sobre as opções para disparar em um contêiner de blob, confira Trabalhando com blobs na documentação de melhores práticas.

Por exemplo, em uma solução de varejo, um sistema de parceiros pode enviar informações do catálogo de produtos como arquivos para o armazenamento de blobs. Você pode usar uma função acionada por blob para validar, transformar e processar os arquivos no sistema principal à medida que os carrega.

Diagrama de um processo de upload de arquivo usando Azure Functions.

Os tutoriais a seguir usam um gatilho de Blob Azure (baseado em Grade de Eventos do Azure) para processar arquivos em um contêiner de blob:

Por exemplo, você pode usar o gatilho Blob com uma assinatura de evento em contêineres 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();
        }
    }
}

Processamento de eventos e fluxo em tempo real

Aplicativos de nuvem, dispositivos IoT e dispositivos de rede geram e coletam uma grande quantidade de dados do cliente. Azure Functions pode processar esses dados quase tempo real como via rápida e armazená-los em Azure Cosmos DB para uso em um painel de análise.

Suas funções também podem usar gatilhos de evento de baixa latência, como a Grade de Eventos e saídas em tempo real, como o SignalR, para processar dados quase em tempo real.

Diagrama de um processo de fluxo em tempo real usando Azure Functions.

Por exemplo, você pode usar o gatilho de hubs de eventos para ler um hub de eventos e a associação de saída para gravação em um hub de eventos depois de depurar e transformar os 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);
}

Crie aplicativos habilitados por IA

Use o Azure Functions para disponibilizar dados e APIs aos clientes de IA e adicionar raciocínio de IA a aplicações orientadas a eventos.

Disponibilize seus dados e APIs para IA

Clientes e agentes de IA precisam de ferramentas que forneçam acesso controlado a dados de negócios, APIs e lógica de aplicação. Você pode usar o Azure Functions para construir e hospedar servidores remotos do Model Context Protocol (MCP) que expõem essas capacidades como ferramentas. A Functions oferece hospedagem gerenciada, autenticação, rede, monitoramento e escalonamento para seu servidor MCP.

Por exemplo, você pode expor estoque de produtos, dados de contas de clientes ou uma API empresarial existente como ferramentas que um cliente de IA pode descobrir e usar.

Diagrama mostrando um cliente de IA chamando um servidor MCP remoto hospedado pelo Azure Functions, que fornece acesso controlado às APIs e dados empresariais.

Adicionar raciocínio de IA a eventos de negócios

Alguns eventos de negócios exigem análise antes que seu aplicativo possa decidir o que fazer em seguida. As habilidades hospedadas no Azure Functions permitem que você defina trabalhos baseados em IA no Markdown e inicie a partir de agendamentos, requisições HTTP, mensagens de fila, alterações de armazenamento e outros eventos. A habilidade hospedada pode chamar ferramentas e serviços antes de retornar um resultado ou tomar uma ação.

Por exemplo, uma habilidade hospedada pode classificar uma reclamação recebida e encaminhá-la para a fila apropriada. Para trabalhos mais complexos, um fluxo de trabalho dinâmico pode criar um plano duradouro em várias etapas que executa tarefas em paralelo, espera por condições externas e retoma após o reinício do trabalhador.

Diagrama mostrando eventos, mensagens e agendas iniciando uma habilidade hospedada no Azure Functions, que usa um modelo Foundry e pode chamar ferramentas, APIs, conectores e ações.

Executar tarefas agendadas

As funções permitem que você execute seu código com base em um agendamento cron definido.

Para saber mais, consulte Criar uma função no portal Azure que é executada em um agendamento.

Por exemplo, você pode analisar um banco de dados de clientes de serviços financeiros para entradas duplicadas a cada 15 minutos para evitar que várias comunicações saiam para o mesmo cliente.

Diagrama de uma tarefa agendada em que uma função limpa um banco de dados a cada 15 minutos eliminando a duplicação de entradas com base na lógica de negócios.

Para obter exemplos, confira estes snippets 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
}

Criar uma API Web escalonável

Uma função disparada por HTTP define um ponto de extremidade HTTP. Esses pontos de extremidade executam código de função que pode se conectar a outros serviços diretamente ou usando extensões de associação. Você pode compor os pontos de extremidade em uma API baseada na Web.

Você também pode usar um endpoint de função acionado por HTTP como uma integração de webhook, como os webhooks do GitHub. Dessa forma, você pode criar funções que processam dados de eventos GitHub. Para obter mais informações, consulte Azure Functions disparador HTTP.

Diagrama do processamento de uma solicitação HTTP usando Azure Functions.

Para obter exemplos, confira estes snippets 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();
}

Criar um fluxo de trabalho sem servidor

As funções geralmente servem como o componente de computação em uma topologia de fluxo de trabalho sem servidor, como um fluxo de trabalho dos Aplicativos Lógicos. Você também pode criar orquestrações de longa duração usando a extensão Durable Functions. Para obter mais informações, consulte Durable Functions visão geral.

Um diagrama de combinação de uma série de fluxos de trabalho sem servidor específicos usando Azure Functions.

Considere estes exemplos:

Responder a alterações no banco de dados

Alguns processos precisam registrar, auditar ou executar outras operações quando os dados armazenados forem alterados. Os gatilhos de funções fornecem uma boa maneira de ser notificado sobre alterações de dados para inicializar essa operação.

Diagrama de uma função que está sendo usada para responder às alterações de banco de dados.

Considere estes exemplos:

Criar sistemas de mensagens confiáveis

Você pode usar o Functions com Azure serviços de mensagens para criar soluções avançadas de mensagens controladas por eventos.

Por exemplo, você pode usar gatilhos em filas do Armazenamento do Azure como uma forma de encadear uma série de execuções de funções. Ou use filas e gatilhos do barramento de serviço para um sistema de pedidos online.

Diagrama de Azure Functions em um sistema de mensagens confiável.

Estes artigos mostram como gravar a saída em uma fila de armazenamento:

Estes artigos mostram como acionar a partir de uma fila ou um tópico do Barramento de Serviço do Azure.

Próxima etapa