Azure Function - Parte 2: Publicando o micro-serviço

O Azure Functions é um serviço provisionado na nuvem. Para criar um novo serviço acesse o Portal e adicione uma nova instância do Functions, escolha o HttpTrigger como tipo da função. Dentro do Functions adicione uma nova função, existem serviços beta de Proxy e Slots, mas não abordaremos eles neste artigo. 

Dois arquivos já são criados automaticamente:

  • run.csx: contém o script propriamente dito;
  • function.json: metadados do script.

O function.json é um array de bindings, junto com uma propriedade enabled, que habilita ou desabilita a função.

function.json

function.json

 

Todos os bindings compartilham algumas propriedades:

Propriedade

Valores

Comentários

type

string

Tipo de binding, por exemplo: queueTrigger.

direction

‘in’, ‘out’

Indica se o valor é de entrada ou de saída.

name

string

Nome que será atribuído ao binding. No C# torna-se o valor da variável e no Javascript uma estrutura de chave/valor

Fonte

Ao criar uma nova function, ela já vem com um código de exemplo pronta para rodar. A princípio é necessário apenas alterar o run.csx com seu script, porém muitas vezes utilizamos pacotes de terceiros, utilizando NuGets.

Os pacotes abaixo já estão incluídos na solução da Azure:

  • mscorlib
  • System
  • System.Core
  • System.Xml
  • System.Net.Http
  • Microsoft.Azure.WebJobs
  • Microsoft.Azure.WebJobs.Host
  • Microsoft.Azure.WebJobs.Extensions
  • System.Web.Http
  • System.Net.Http.Formatting

Caso seja necessário adicionar outros pacotes é necessário criar um arquivo chamado project.json, este arquivo conterá as informações dos pacotes adicionais que serão instalados no momento do build da solução.

O Azure Function automaticamente percebe alterações neste arquivo e executa o NuGet restore antes do próximo build.

Exemplo de formatação do project.json:

project.json

Configurados os metadados e as dependências o script já está pronto para rodar na nuvem. Para facilitar os testes a Azure tem a funcionalidade de fazer as chamadas pela plataforma. 

Vale ressaltar que neste artigo abordamos um Function que tem como gatilho uma requisição HTTP mas é possível configurar outros tipos de gatilho, como por exemplo: funções agendadas, vinculadas a eventos do CosmosDB, ao GitHub entre outros.

Deixe um comentário