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 ativada por blob para validar, transformar e processar os ficheiros no sistema principal à medida que os carregas.
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 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();
}
}
}
- Quickstart: Responder a eventos de armazenamento de blob usando Azure Functions
- Exemplo de início rápido: disparador de blob com o tipo de fonte Evento Grid
- Tutorial (eventos): Ativar funções Azure em contentores de blob usando uma subscrição de evento
- Tutorial (polling): Carregar e analisar um ficheiro com Azure Functions e Blob Storage
- Início Rápido: Como responder a eventos de armazenamento de blobs usando Azure Functions
- Exemplo de início rápido: disparador de blob com a fonte do tipo Event Grid
- Tutorial (eventos): Ativar funções Azure em contentores de blob usando uma subscrição de evento
- Tutorial (polling): Carregar e analisar um ficheiro com Azure Functions e Blob Storage
Fluxo em tempo real e processamento de eventos
Aplicações cloud, dispositivos IoT e dispositivos de rede geram e recolhem uma grande quantidade de telemetria. O Azure Functions pode processar esses dados quase em tempo real como o caminho ativo 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 eventos de baixa latência, como Grade de Eventos, 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);
}
- Streaming em escala com Hubs de Eventos, Funções e Azure SQL do Azure
- Transmissão em escala com Azure Event Hubs, Azure Functions e Azure Cosmos DB
- Streaming em escala com Hubs de Eventos do Azure com produtor Kafka, Funções com gatilho Kafka e Cosmos DB
- Streaming em escala com o Hub IoT do Azure, Functions e Azure SQL
- Gatilho de Hubs de Eventos do Azure para o Azure Functions
- Gatilho Apache Kafka para Azure Functions
Machine learning e IA
O Azure Functions fornece recursos de computação sem servidor que se integram com a IA e os serviços do Azure para simplificar a criação de aplicativos inteligentes hospedados na nuvem. Pode usar o modelo de programação Functions para criar e alojar servidores remotos Model Content Protocol (MCP) e implementar várias ferramentas de IA. Para mais informações, consulte Ferramentas e servidores MCP.
A extensão Azure OpenAI permite integrar funcionalidades e comportamentos de IA do serviço 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 também pode chamar um modelo TensorFlow ou serviços de IA do Azure para processar e classificar um fluxo de imagens.
- Quickstart: Construa um servidor MCP remoto personalizado usando Azure Functions
- Quickstart: Servidores anfitriões construídos com SDKs MCP no Azure Functions
- Exemplo: Começar com servidores MCP remotos usando Azure Functions
- Exemplo: Alojar servidores MCP remotos construídos com SDKs MCP oficiais no Azure Functions
- Quickstart: Construa um servidor MCP remoto personalizado usando Azure Functions
- Início Rápido: Hospedar servidores construídos com SDKs MCP no Azure Functions
- Exemplo: Começar com servidores MCP remotos usando Azure Functions
- Exemplo: Alojar servidores MCP remotos construídos com SDKs MCP oficiais 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 execute o seu código com base numa cron schedule que definir.
Veja Criar uma função no portal Azure que corre num agendamento.
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
}
Crie uma API da Web escalável
Uma função acionada 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 ligação. Pode configurar os endpoints numa API web.
Pode usar um endpoint de função acionada 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 mais informações, consulte Monitorizar eventos do GitHub usando um webhook com Azure Functions.
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();
}
- Início Rápido: Gatilho HTTP do Azure Functions
- Artigo: Criar APIs serverless no Visual Studio usando Azure Functions e integração com API Management
- Treino: Expor múltiplas aplicações funcionais como uma API consistente utilizando Azure API Management
- Exemplo: Aplicação Web com API C# e Azure SQL DB em Aplicações e Funções Web Estáticas
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 obter mais informações, consulte Visão geral de funções duráveis.
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
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 de Armazenamento do Azure como uma maneira de encadear uma série de execuções de função. 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 acionar a partir de uma fila ou de um tópico do Azure Service Bus.