Novidades do .NET 7: suporte a Azure Functions + Isolated Process

Renato Groffe
3 min readDec 21, 2022

--

Com o lançamento do .NET 7 temos também agora a possibilidade de desenvolvermos soluções serverless com esta versão, fazendo uso para isto de Azure Functions no modelo conhecido como Isolated Process. Esta foi inclusive uma das novidades anunciadas durante a edição 2022 do .NET Conf:

Neste artigo descreverei os passos necessários para a criação de Function Apps com o .NET 7, incluindo o deployment de uma aplicação serverless no Microsoft Azure.

Precisaremos inicialmente atualizar o Azure Functions Core Tools para sua versão mais recente. Utilizei para isto a seguinte instrução baseada no npm:

npm i -g azure-functions-core-tools

Em seguida criaremos uma Function App com o comando func init (lembrando que será assumido o nome do diretório como identificação do projeto). Aqui indicamos o uso de Isolated Process (parâmetro --worker-runtime), bem como do .NET 7 (parâmetro --target-framework):

func init --worker-runtime dotnet-isolated --target-framework net7.0
Clique nesta imagem para visualizar com uma melhor resolução

Com a instrução func new será criada então uma Function baseada em HttpTrigger e chamada ValorAtual:

Clique nesta imagem para visualizar com uma melhor resolução

Ao acessar o arquivo FunctionAppContagem.csproj no Visual Studio Code será possível observar que o projeto tomou por base o .NET 7:

Clique nesta imagem para visualizar com uma melhor resolução

Na listagem a seguir temos o conteúdo do arquivo FunctionAppContagem.csproj:

Já em Program.cs configurei uma dependência para o tipo Contador como Singleton:

Na próxima listagem temos a implementação do tipo Contador:

A classe ResultadorContador corresponde ao retorno produzido pela Function ValorAtual (contagem de acessos):

E chegamos à implementação da Function ValorAtual, com uma instância do tipo Contador sendo injetada a partir do construtor:

Este exemplo foi disponibilizado como um repositório no GitHub:

https://github.com/renatogroffe/DotNet7-AzureFunctions-HttpTrigger_ContagemAcessos

Caso achem útil esta solução, peço por favor um ⭐️ no repositório apoiando. Fica também o convite para que vocês me sigam lá no GitHub!

Para testes locais executei a aplicação por meio do comando func start:

Clique nesta imagem para visualizar com uma melhor resolução

Acessando o endpoint da Function ValorAtual serão produzidos resultados similares ao da imagem seguinte (já considerando o uso do .NET 7):

Clique nesta imagem para visualizar com uma melhor resolução

Ao criarmos uma nova Function App no Portal do Azure uma das opções possíveis será o .NET 7:

Para também testar a aplicação na nuvem realizei o deployment da mesma a partir do próprio Visual Studio Code:

Na imagem a seguir podemos visualizar um teste de acesso à Function App, após a publicação desta no Azure:

Clique nesta imagem para visualizar com uma melhor resolução

--

--

Renato Groffe
Renato Groffe

Written by Renato Groffe

Microsoft Most Valuable Professional (MVP), Multi-Plataform Technical Audience Contributor (MTAC), Software Engineer, Technical Writer and Speaker

No responses yet