Serverless com C# e Azure Functions – Parte 2: Tipos de funções

Nesta série de artigos vou abordar o desenvolvimento de soluções Serverless utilizando C# e Azure Functions, que é o serviço de computação Serverless da plataforma Microsoft Azure.

Ao final do artigo passado chegamos na criação do projeto. Neste artigo vamos prosseguir com a série, apresentando diferentes tipos de funções e como elas funcionam.

Artigos da série

Código Fonte a ser evoluído durante a série de artigos pode ser encontrado aqui.


Principais tipos de função

Primeiramente, para criar uma nova função basta utilizar a linha de comando, navegar para a pasta do seu projeto Azure Functions e digitar o comando abaixo.

func new

Ao apertar ENTER, uma série de opções de funções vai ser mostrada, como na imagem abaixo.

Opções de tipos de funções que podem ser criadas

Lembrar que é necessário ter o Azure Function Core Tools instalado corretamente, além da SDK do .NET. Se ainda não configurou o ambiente, indico fazer desde já seguindo o primeiro artigo da série.

Abaixo estão os tipos de funções que podem ser criadas e como são invocadas:

  • QueueTrigger: através de item novo recebido em uma fila do Azure Queue Storage
  • HttpTrigger: através de requisição HTTP
  • BlobTrigger: através de uma inserção ou atualização de um blob no Azure Blob Storage
  • TimerTrigger: através de uma certa rotina/intervalo, como a cada 5 minutos por exemplo
  • DurableFunctionsOrchestration: através de uma nova instância de orquestração ou novo evento em existente
  • SendGrid: no modelo padrão, através de uma nova mensagem no Azure Queue Storage
  • EventHubTrigger: através de um evento criado em um stream de hub de eventos
  • ServiceBusQueueTrigger: através de uma nova mensagem em uma fila do Azure Service Bus
  • ServiceBusTopicTrigger: através de uma nova mensagem em um tópico do Azure Service Bus
  • EventGridTrigger: através de um novo evento enviado a um tópico de event grid
  • CosmosDBTrigger: através de inserções ou atualizações em partições do Azure Cosmos DB
  • IotHubTrigger: através de eventos enviados a um stream de eventos de IoT Hub

São muitos tipos disponíveis, e para a nossa série vou criar 3 funções:

  • Uma com gatilho HTTP, que vai inserir um registro no Azure CosmosDB
  • Uma com gatilho Azure CosmosDB, que vai publicar uma mensagem no Azure Service Bus
  • Uma com gatilho Azure Service Bus, que vai enviar com SendGrid

Vamos criar cada uma delas agora utilizando o comando abaixo 3 vezes, selecionando as opções HttpTrigger, ServiceBusQueueTrigger e CosmosDBTrigger. O nome de cada função será, respectivamente, CreateCustomerFunction, CustomerCreatedFunction, NotifyCustomerCreatedFunction

O seu projeto ficará similar ao print abaixo, se estiver seguindo o passo a passo na série.

Projeto atualizado com as novas funções adicionadas

Se tentarmos executar o projeto utilizando o comando func start ele vai falhar, já que ainda não configuramos as cadeias de conexão com o Azure CosmosDB e também Azure Service Bus, mas no próximo artigo vamos começar a resolver isso!


Conclusão

Neste artigo progredimos no projeto apresentado no primeiro artigo da série, apresentando os tipos de funções disponíveis e como são invocadas, além de criar as primeiras funções de nosso projeto Azure Functions.

No próximo artigo serão criados os recursos de Azure CosmosDB e Azure Service Bus, além de ser feita a configuração deles com nossas funções criadas.