Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Muitas vezes, constróis sistemas que reagem a uma série de eventos críticos. Quer esteja a construir uma API web, a responder a alterações na base de dados ou a processar fluxos de eventos ou mensagens, pode usar o Azure Functions para implementar estes sistemas.
Em muitos casos, uma função integra-se com uma matriz de serviços de nuvem para fornecer implementações ricas em recursos. A lista seguinte mostra cenários comuns (mas de forma alguma exaustivos) para Azure Functions.
Selecione sua linguagem de desenvolvimento na parte superior do artigo.
Processar uploads de ficheiros
Pode usar funções de várias formas para processar ficheiros dentro ou fora de um contentor de armazenamento de blobs. Para saber mais sobre as opções de acionamento em um contêiner de blob, consulte Trabalhando com blobs na documentação de práticas recomendadas.
Por exemplo, em uma solução de varejo, um sistema de parceiro pode enviar informações do catálogo de produtos como arquivos para o armazenamento de blobs. Podes usar uma função acionada por blob para validar, transformar e processar os ficheiros no sistema principal enquanto os carregas.
Os tutoriais seguintes utilizam um gatilho Azure Blob (baseado no Azure Event Grid) para processar ficheiros num contentor de blob:
- Início Rápido: Reagir a eventos de armazenamento de blobs utilizando o Azure Functions
- Exemplo: disparador de Blob com o tipo de fonte Event Grid
- Tutorial (eventos): Ativar Azure Functions em contentores de blob usando uma subscrição de evento
- Tutorial (polling): Carregar e analisar um ficheiro com Azure Functions e Blob Storage
Por exemplo, podes usar o gatilho Blob com uma subscrição de evento em contentores 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();
}
}
}
- Início Rápido: Reagir a eventos de armazenamento de blobs utilizando o Azure Functions
- Tutorial: Processar imagens usando FFmpeg numa partilha de Azure Files montada
- Exemplo: disparador de Blob com o tipo de fonte Event Grid
- Exemplo: Processamento de imagem com FFmpeg montado em armazenamento de Azure Files
- Tutorial: Ativar Azure Functions em contentores de blob usando uma subscrição de evento
Fluxo em tempo real e processamento de eventos
Aplicações cloud, dispositivos IoT e dispositivos de rede geram e recolhem uma grande quantidade de dados de clientes. Azure Functions pode processar esses dados quase em tempo real como o caminho quente e depois armazená-los em Azure Cosmos DB para usar num painel de análise.
As suas funções também podem usar gatilhos de eventos de baixa latência, como o Event Grid, e saídas em tempo real como o SignalR para processar dados quase em tempo real.
Por exemplo, pode usar o trigger de event hubs para ler de um event hub e o binding de saída para escrever num event hub após desagregar 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);
}
- Exemplo: Streaming em escala com Azure Event Hubs, Funções e Azure SQL
- Exemplo: Streaming em escala com Azure Event Hubs, Funções e Cosmos DB
- Exemplo: Streaming em escala com o Azure Event Hubs usando o produtor Kafka, Azure Functions com trigger para Kafka e Cosmos DB
- Exemplo: Streaming em escala com Azure IoT Hub, Azure Functions e Azure SQL
- Azure Event Hubs disparador para Azure Functions
- Apache Kafka trigger para Azure Functions
Machine learning e IA
O Azure Functions fornece recursos computacionais serverless que se integram com serviços de IA e Azure para simplificar a construção de aplicações inteligentes alojadas na cloud. Pode usar o modelo de programação Functions para criar e alojar servidores remotos do Model Context Protocol (MCP) e implementar várias ferramentas de IA. Para mais informações, consulte Ferramentas e servidores MCP.
A extensão de ligação Azure OpenAI permite-lhe integrar funcionalidades e comportamentos de IA do Azure OpenAI, como geração aumentada por recuperação (RAG), nas execuções do seu código de função. Para mais informações, consulte Geração aumentada por recuperação.
Uma função pode também chamar um modelo TensorFlow ou Foundry Tools para processar e classificar um fluxo de imagens.
- Quickstart: Constrói um servidor MCP remoto personalizado usando Azure Functions
- Início rápido: Alojar servidores construídos com SDKs MCP no Azure Functions
- Exemplo: Construa e implemente um servidor MCP remoto usando Azure Functions
- Exemplo: Hospedar servidores MCP remotos construídos com SDKs MCP oficiais em Azure Functions
- Quickstart: Constrói um servidor MCP remoto personalizado usando Azure Functions
- Início rápido: Alojar servidores construídos com SDKs MCP no Azure Functions
- Exemplo: Construir e implementar um servidor MCP remoto usando Azure Functions
- Exemplo: Hospedar servidores MCP remotos construídos com SDKs MCP oficiais em Azure Functions
Para mais informações, consulte Use ferramentas e modelos de IA em Azure Functions.
Executar tarefas agendadas
As funções permitem que execute o seu código com base numa cron schedule que definir.
Para saber mais, consulte Criar uma função no portal Azure que funcione num horário.
Por exemplo, pode analisar uma base de dados de clientes de serviços financeiros à procura de entradas duplicadas a cada 15 minutos, para evitar que múltiplas comunicações sejam enviadas ao mesmo cliente.
Para exemplos, veja estes excertos 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
}
Para exemplos, veja estes excertos de código:
Crie uma API da Web escalável
Uma função ativada por HTTP define um ponto final 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 ligação. Pode configurar os endpoints numa API web.
Também pode usar um endpoint de função ativado por HTTP como integração com webhooks, como webhooks do GitHub. Desta forma, pode criar funções que processam dados de eventos do GitHub. Para mais informações, veja Azure Functions HTTP trigger.
Para exemplos, veja estes excertos 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();
}
- Quickstart: Constrói uma API web escalável usando Azure Functions
- Criar APIs serverless em Visual Studio usando Azure Functions e integração de Gestão de APIs
- Expor APIs sem servidor a partir de endpoints HTTP usando o Azure API Management
- Exemplo: Aplicação web com API C# e Azure SQL base de dados em Static Web Apps e Functions
Crie um fluxo de trabalho sem servidor
As funções servem frequentemente como componente de computação numa topologia de workflow serverless, como um workflow de Logic Apps. Também pode criar orquestrações de longa duração usando a extensão Durable Functions. Para mais informações, consulte Durable Functions visão geral.
- Quickstart: Crie a sua primeira função durável em Azure usando Python
- Tutorial: Análise de texto durável com uma partilha de Azure Files montada
- Exemplo: Análise durável de texto com montagem de armazenamento Azure Files
- Formação: Desenvolver APIs sem servidor com Azure Functions, Logic Apps e Azure SQL Database
Responder a alterações no banco de dados
Alguns processos precisam de registar, auditar ou realizar outras operações quando os dados armazenados mudam. Os gatilhos de funções fornecem uma boa maneira de ser notificado de alterações de dados para iniciar tal operação.
Considere estes exemplos:
Crie sistemas de mensagens confiáveis
Pode usar serviços de mensagens Functions com Azure para criar soluções avançadas de mensagens orientadas a eventos.
Por exemplo, pode usar gatilhos nas filas do Azure Storage como forma de encadear uma série de execuções de funções. Ou use filas e gatilhos de barramento de serviço para um sistema de pedidos on-line.
Estes artigos mostram como gravar a saída em uma fila de armazenamento:
Estes artigos mostram como disparar a partir de uma fila ou tópico do Azure Service Bus.