Descobrir o Azure Functions

Concluído

O Azure Functions é uma solução sem servidor que permite que você escreva menos código, mantenha menos infraestrutura e economize nos custos. Em vez de se preocupar com a implantação e manutenção de servidores, a infraestrutura de nuvem fornece todos os recursos atualizados necessários para manter seus aplicativos em execução.

Muitas vezes, criamos sistemas para reagir a uma série de eventos críticos. Se você estiver criando uma API Web, respondendo a alterações no banco de dados, processando fluxos IoT ou até mesmo gerenciando filas de mensagens - cada aplicativo precisa ter uma forma de executar algum código à medida que esses eventos ocorrem.

O Azure Functions dá suporte a gatilhos, que são maneiras de iniciar a execução do código e associações, que são maneiras de simplificar a codificação para dados de entrada e saída. Há outros serviços de integração e automação no Azure e todos eles podem resolver problemas de integração e automatizar processos de negócios. Todos eles definem entrada e saída, condições e ações.

Comparar o Azure Functions e os Aplicativos Lógicos do Azure

O Azure Functions e os Aplicativos Lógicos são serviços do Azure que permitem habilitar cargas de trabalho sem servidor. O Azure Functions é um serviço de computação sem servidor, enquanto os Aplicativos Lógicos do Azure fornecem uma plataforma de integração de fluxo de trabalho sem servidor. Ambos podem criar orquestrações complexas. Uma orquestração é uma coleção de funções ou etapas, chamadas ações nos Aplicativos Lógicos, que são executadas para realizar uma tarefa complexa.

Para o Azure Functions, você desenvolve orquestrações escrevendo código e usando a extensão Durable Functions. Para os Aplicativos Lógicos, você pode criar orquestrações usando uma GUI ou editando arquivos de configuração.

A seguinte tabela lista algumas das principais diferenças entre o Functions e os Aplicativos Lógicos:

Tópico Azure Functions Aplicativos Lógicos
Desenvolvimento Code First (obrigatório) Designer First (declarativo)
Conectividade Cerca de doze tipos internos de associação + possibilidade de escrita de código para associações personalizadas Grande conjunto de conectores + Enterprise Integration Pack para cenários de B2B + possibilidade de criar conectores personalizados
Ações Cada atividade é uma função do Azure; você escreve código para as funções de atividade Grande conjunto de ações predefinidas
Monitorização Azure Application Insights Portal do Azure, logs do Azure Monitor
Gestão API REST, Visual Studio Portal do Azure, API REST, PowerShell, Visual Studio
Contexto de execução É executado no Azure ou localmente É executado no Azure, localmente ou no local

Comparar Functions e WebJobs

Como no Azure Functions, o WebJobs do Serviço de Aplicativo do Azure com o SDK do WebJobs é um serviço de integração com prioridade de código que foi projetado para desenvolvedores. Ambos são criados no Serviço de Aplicativo do Azure e dão suporte a recursos como integração de controle de origem, autenticação e monitoramento com integração do Application Insights.

O Azure Functions se baseia no SDK do WebJobs e, portanto, compartilha muitos dos mesmos gatilhos de evento e conexões com outros serviços do Azure. Estes são alguns fatores a serem considerados quando você escolher entre o Azure Functions e o WebJobs com o SDK do WebJobs:

Fator Functions WebJobs com o SDK do WebJobs
Modelo de aplicativo sem servidor com dimensionamento automático Sim Não
Desenvolver e testar no navegador Sim Não
Preços de pagamento por uso Sim Não
Integração com aplicativos lógicos Sim Não
Eventos de gatilho Temporizador
Blobs e filas do Armazenamento do Azure
Filas e tópicos do Barramento de Serviço do Azure
Azure Cosmos DB
Hubs de Eventos do Azure
HTTP/WebHook (GitHub
Slack)
Grade de Eventos do Azure
Temporizador
Blobs e filas do Armazenamento do Azure
Filas e tópicos do Barramento de Serviço do Azure
Azure Cosmos DB
Hubs de Eventos do Azure
Sistema de arquivos

O Azure Functions oferece mais produtividade para o desenvolvedor do que o WebJobs do Serviço de Aplicativo do Azure. Também oferece mais opções de linguagens de programação, ambientes de desenvolvimento, integração de serviços do Azure e preços. Na maioria dos cenários, é a melhor opção.