Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 o 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 o 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 enquanto você os carrega.
Os tutoriais a seguir usam um gatilho de Blob (baseado em Grade de Eventos) para processar arquivos em um contêiner de blob:
Por exemplo, use o gatilho de blob com uma assinatura de evento em contêineres de blob:
[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();
}
}
}
- Início Rápido: Responder a eventos de armazenamento de blobs usando o Azure Functions
- Amostra: Gatilho de blob com a amostra de início rápido de tipo de origem da Grade de Eventos
- Tutorial (eventos): Acionar funções do Azure em contêineres de blob usando uma subscrição de eventos
- Tutorial (sondagem): Carregar e analisar um arquivo com o Azure Functions e o Armazenamento de Blobs
- Início Rápido: Responder a eventos de armazenamento de blobs usando o Azure Functions
- Amostra: Gatilho de blob com a amostra de início rápido de tipo de origem da Grade de Eventos
- Tutorial (eventos): Desencadear funções do Azure em contêineres de blobs usando uma assinatura de eventos
- Tutorial (sondagem): Carregar e analisar um arquivo com o Azure Functions e o Armazenamento de Blobs
Processamento de eventos e fluxo em tempo real
Aplicativos de nuvem, dispositivos IoT e dispositivos de rede geram e coletam uma grande quantidade de telemetria. O Azure Functions pode processar esses dados quase em tempo real como o caminho crítico e, em seguida, armazená-los no 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.
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);
}
- Streaming em escala com o Hubs de Eventos do Azure, Functions e SQL do Azure
- Streaming em escala com Hubs de Eventos do Azure, Functions e Cosmos DB
- Streaming em escala com o Hubs de Eventos do Azure com o produtor do Kafka, Functions com gatilho do Kafka e Cosmos DB
- Streaming em escala com o Hub IoT do Azure, Functions e SQL do Azure
- Gatilho de Hubs de Eventos do Azure para o Azure Functions
- Gatilho do Apache Kafka para Azure Functions
Machine learning e IA
O Azure Functions fornece recursos de computação sem servidor que se integram aos serviços de IA e do Azure para simplificar a criação de aplicativos inteligentes hospedados na nuvem. Você pode usar o modelo de programação do Functions para criar e hospedar servidores remotos do PROTOCOLO MCP (Protocolo de Conteúdo de Modelo) e implementar várias ferramentas de IA. Para obter mais informações, consulte Ferramentas e servidores MCP.
A extensão de associação do Azure OpenAI permite integrar recursos de IA e comportamentos do serviço Azure OpenAI, como RAG (geração aumentada por recuperação), em execuções de código de função. Para obter mais informações, veja RAG (Geração Aumentada de Recuperação).
Uma função também pode chamar um modelo TensorFlow ou serviços de IA do Azure para processar e classificar um fluxo de imagens.
- Início Rápido: Criar um servidor MCP remoto personalizado usando o Azure Functions
- Início Rápido: Hospede servidores criados com SDKs do MCP no Azure Functions
- Exemplo: Introdução aos servidores MCP remotos usando o Azure Functions
- Exemplo: hospedar servidores MCP remotos criados com SDKs oficiais do MCP no Azure Functions
- Início Rápido: Criar um servidor MCP remoto personalizado usando o Azure Functions
- Início Rápido: Hospede servidores criados com SDKs do MCP no Azure Functions
- Exemplo: Introdução aos servidores MCP remotos usando o Azure Functions
- Exemplo: hospedar servidores MCP remotos criados com SDKs oficiais do MCP no Azure Functions
Para obter mais informações, consulte Usar ferramentas e modelos de IA no Azure Functions.
Executar tarefas agendadas
As funções permitem que você execute seu código com base em um agendamento cron definido.
Consulte Criar uma função no portal do 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.
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 ponto de extremidade de função disparada 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 do GitHub. Para obter mais informações, consulte Monitorar eventos do GitHub usando um webhook com o 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();
}
- Guia de Início Rápido: Gatilho HTTP do Azure Functions
- Artigo: Criar APIs sem servidor no Visual Studio usando o Azure Functions e a integração do Gerenciamento de API
- Treinamento: expor vários aplicativos de funções como uma API consistente usando o Gerenciamento de API do Azure
- Exemplo: aplicativo Web com uma API C# e banco de dados SQL do Azure em aplicativos Web estáticos e funções
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 execução longa usando a extensão Durable Functions. Para obter mais informações, confira Visão geral do Durable Functions.
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.
Considere estes exemplos:
Criar sistemas de mensagens confiáveis
Você pode usar o Functions com os serviços de mensagens do Azure para criar soluções avançadas de mensagens controladas por eventos.
Por exemplo, você pode usar gatilhos em filas do Armazenamento do Microsoft Azure como uma maneira de encadear uma série de execuções de função. Ou use filas e gatilhos do barramento de serviço para um sistema de pedidos online.
Estes artigos mostram como gravar a saída em uma fila de armazenamento:
Estes artigos mostram como usar o gatilho em uma fila ou um tópico do Barramento de Serviço do Azure.