.NET Core 3.x + Serverless: configuração, dicas e exemplos com Azure Functions 3.x
A Microsoft anunciou recentemente (Dezembro/2019) a disponibilidade da versão 3.0 das Azure Functions, alternativa para o desenvolvimento de soluções serverless dentro do Microsoft Azure. E qual o impacto disto para Desenvolvedores .NET?
Com este release agora é possível a implementação de aplicações baseadas em Azure Functions utilizando a versão o .NET Core 3.x. Projetos serverless poderão assim se beneficiar da nova versão da plataforma .NET, valendo-se de recursos como o novo serializer JSON e o novo provider para acesso a bases do SQL Server/Azure SQL.
E o que seria necessário para iniciarmos o desenvolvimento utilizando Azure Functions na versão 3.x?
Precisaremos instalar a versão 3 das Azure Functions Core Tools. No caso específico de ambientes Windows, este procedimento envolverá o uso do utilitário de linha de comando npm como indicado na instrução:
npm install -g azure-functions-core-tools@3
Na imagem a seguir é possível observar a execução deste comando via PowerShell em uma máquina de Desenvolvimento com Windows 10:
As instruções para a instalação da versão 3 das Azure Functions Core Tools em ambientes Linux e macOS podem ser encontradas no seguinte link:
Work with Azure Functions Core Tools | Microsoft Docs
Para aqueles habituados com Azure Functions 2.x, na versão 3.x o desenvolvimento de Function Apps acontecerá de maneira quase idêntica (devendo-se levar em contas as novidades do .NET Core 3.x). No caso do Visual Studio Code, será necessário o uso da extensão já existente para implementação de Azure Functions.
Os artigos a seguir trazem detalhes do desenvolvimento de Azure Functions a partir do Visual Studio Code:
.NET Core + Serverless: implementando jobs com Azure Functions e o VS Code
.NET Core + Serverless: publicando uma Azure Function via VS Code
No Portal do Azure já há uma indicação que novas Function Apps serão criadas por default na versão 3.x:
Ao criar um novo projeto baseado em Azure Functions 3.x o código do arquivo .csproj já estará referenciando o .NET Core 3.x como indicado na seguinte listagem:
Na listagem a seguir temos exemplos de uso de algumas novidades do .NET Core 3.x:
- O primeiro exemplo envolve o novo serializer JSON que integra o .NET Core 3.x. Conforme podemos observar, o método genérico Deserialize da classe JsonSerializer (namespace System.Text.Json) foi acionado na linha 17;
- Temos ainda a utilização do novo provider para SQL Server/Azure SQL, através de uma instância da classe SqlConnection (definida agora no namespace Microsoft.Data.SqlClient) a partir da linha 22 (em uso conjunto com a biblioteca Dapper).
O projeto no qual esta Queue Trigger foi implementada já se encontra disponível no GitHub:
Outros exemplos envolvendo a utilização de Azure Functions 3.x, .NET Core e diversas outras tecnologias estão listados nos links a seguir:
.NET Core + Azure Functions 3.x + Azure SQL/SQL Server + Timer Trigger
.NET Core + Azure Functions 3.x + Injeção de Dependências
.NET Core + Azure Functions 3.x + Table Storage + Timer Trigger + Monitoramento Sites
.NET Core + Azure Functions 3.x + Azure SQL/SQL Server + Timer Trigger + Monitoramento Sites
E aproveito este espaço também para um convite…
Que tal aprender mais sobre Docker, Kubernetes e a implementação de soluções baseadas em containers utilizando o Microsoft Azure, em um workshop que acontecerá durante um sábado (dia 04/04/2020) em São Paulo Capital e implementando um case na prática? Acesse então o link a seguir para efetuar sua inscrição com um desconto: http://bit.ly/anp-docker-blog-groffe