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 construímos sistemas para reagir a uma série de eventos críticos. Quer esteja a criar uma API Web, a responder a alterações na base de dados, a processar fluxos de eventos ou mensagens, o Azure Functions pode ser utilizado para as implementar.
Em muitos casos, uma função integra-se com uma matriz de serviços de nuvem para fornecer implementações ricas em recursos. A seguir está um conjunto comum (mas não exaustivo) de cenários para o Azure Functions.
Selecione sua linguagem de desenvolvimento na parte superior do artigo.
Processar uploads de ficheiros
Há várias maneiras de usar funções para processar arquivos dentro ou fora de um contêiner de armazenamento de blob. 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. Você pode usar uma função acionada por blob para validar, transformar e processar os arquivos no sistema principal à medida que são carregados.
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, usando o gatilho de blob com uma assinatura de evento em contentores 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();
}
}
}
Fluxo em tempo real e processamento de eventos
Tanta telemetria é gerada e coletada de aplicativos em nuvem, dispositivos IoT e dispositivos de rede. 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, usando o gatilho dos hubs de eventos para ler de um hub de eventos e a vinculação de saída para gravar para um hub de eventos depois de 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
Além do processamento de dados, o Azure Functions pode ser usado para inferir em modelos. A extensão de vinculação do Azure OpenAI permite integrar facilmente recursos e comportamentos do serviço Azure OpenAI em suas execuções de código de função.
As funções podem se conectar a um recurso OpenAI para habilitar a conclusão de texto e bate-papo, usar assistentes e aproveitar incorporações e pesquisa semântica.
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.
- Tutorial: Conclusão de texto usando o Azure OpenAI
- Exemplo: Carregue arquivos de texto e acesse dados usando vários recursos do OpenAI
- Exemplo: Resumo de texto usando o AI Cognitive Language Service
- Exemplo: Conclusão de texto usando o Azure OpenAI
- Exemplo: Forneça habilidades de assistente para o seu modelo
- Exemplo: Gerar incorporações
- Exemplo: Aproveitar a pesquisa semântica
- Tutorial: Conclusão de texto usando o Azure OpenAI
- Exemplo: Conclusão de texto usando o Azure OpenAI
- Exemplo: Forneça habilidades de assistente para o seu modelo
- Exemplo: Gerar incorporações
- Exemplo: Aproveitar a pesquisa semântica
- Tutorial: Conclusão de texto usando o Azure OpenAI
- Tutorial: Aplicar modelos de aprendizado de máquina no Azure Functions com Python e TensorFlow
- Tutorial: Implantar um modelo de classificação de imagem pré-treinado no Azure Functions com o PyTorch
- Exemplo: Conclusão de texto usando o Azure OpenAI
- Exemplo: Forneça habilidades de assistente para o seu modelo
- Exemplo: Gerar incorporações
- Exemplo: Aproveitar a pesquisa semântica
- Exemplo: Bate-papo usando ChatGPT
- Exemplo: LangChain com Azure OpenAI e ChatGPT
- Tutorial: Conclusão de texto usando o Azure OpenAI
- Exemplo: Conclusão de texto usando o Azure OpenAI
- Exemplo: Forneça habilidades de assistente para o seu modelo
- Exemplo: Gerar incorporações
- Exemplo: Aproveitar a pesquisa semântica
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.
Confira como Criar uma função no portal do Azure que é executada em uma agenda.
Um banco de dados de clientes de serviços financeiros, por exemplo, pode ser analisado para entradas duplicadas a cada 15 minutos para evitar que várias comunicações saiam para o mesmo cliente.
[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 saber mais, consulte Monitorar eventos do GitHub usando um webhook com o Azure Functions.
Para obter exemplos, consulte o seguinte:
[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 das Azure Functions
- Artigo: Criar APIs sem servidor no Visual Studio usando o Azure Functions e a integração do Gerenciamento de API
- Treinamento: exponha vários aplicativos de função como uma API consistente usando o Gerenciamento de API do Azure
- Exemplo: implemente o padrão geode ao implantar a API em geodes nas regiões distribuídas do Azure.
- Exemplo: Aplicativo Web com uma API C# e Banco de Dados SQL do Azure em Funções e Aplicativos Web Estáticos
- Início rápido: gatilho HTTP das Azure Functions
- Início rápido: gatilho HTTP das Azure Functions
- Início rápido: gatilho HTTP das Azure Functions
- Início rápido: gatilho HTTP das Azure Functions
- Início rápido: gatilho HTTP das Azure Functions
Crie um fluxo de trabalho sem servidor
Funções são frequentemente o componente de computação em uma topologia de fluxo de trabalho sem servidor, como um fluxo de trabalho de Logic Apps. Você 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.
- Guia de início rápido: crie sua primeira função durável no Azure usando Java
- Guia de início rápido: crie sua primeira função durável no Azure usando o PowerShell
Responder a alterações no banco de dados
Há processos em que você pode precisar registrar, auditar ou executar alguma outra operação quando os dados armazenados são alterados. 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 ativar a partir de uma fila ou tópico do Azure Service Bus.