Desvendando o Poder das Funções Azure com .NET Core: Um Guia Prático
Nos últimos anos, a computação em nuvem tem revolucionado a maneira como desenvolvemos e implantamos aplicações. Uma das inovações mais empolgantes nesse domínio é a "Computação sem Servidor" ou "Serverless". E, quando falamos de serverless na plataforma Azure, estamos falando das Funções Azure. Neste artigo, mergulharemos profundamente no desenvolvimento de Funções Azure usando a biblioteca de classes .NET 6, proporcionando uma visão prática e detalhada do processo.
1. Introdução às Funções Azure
As Funções Azure permitem que os desenvolvedores executem pequenos bits de código em resposta a uma variedade de eventos. Estas funções são ideais para processos simples, como responder a solicitações HTTP, processar dados em tempo real ou mesmo agendar tarefas. O melhor de tudo é que você só paga pelo tempo de execução da função, tornando-o uma opção econômica.
2. Preparando o Terreno
Antes de embarcar nesta jornada, é crucial ter as ferramentas certas. Você precisará do:
3. Criando Seu Primeiro Projeto de Função
Seja usando o Visual Studio ou a linha de comando, criar um projeto de função é um processo direto:
4. Adicionando Functions Http e Entity Framework Core
Com o projeto pronto, é hora de adicionar funções e integrá-las ao Entity Framework Core. Vamos criar uma função que adiciona um novo usuário a um banco de dados:
Primeiro, instale o pacote NuGet do Entity Framework Core:
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Agora, defina o modelo e o contexto:
Recomendados pelo LinkedIn
public class Usuario
{
public int Id { get; set; }
public string Nome { get; set; }
public string Email { get; set; }
}
public class AppDbContext : DbContext
{
public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { }
public DbSet<Usuario> Usuarios { get; set; }
}
A seguir, a função Azure que adiciona um novo usuário:
public static class FuncaoUsuario
{
private static readonly string connectionString = "SuaConnectionStringAqui";
[FunctionName("AdicionarUsuario")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = "usuarios")] HttpRequest req,
ILogger log)
{
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
var usuario = JsonConvert.DeserializeObject<Usuario>(requestBody);
var options = new DbContextOptionsBuilder<AppDbContext>()
.UseSqlServer(connectionString)
.Options;
using (var context = new AppDbContext(options))
{
context.Usuarios.Add(usuario);
await context.SaveChangesAsync();
}
log.LogInformation($"Usuário {usuario.Nome} adicionado com sucesso.");
return new OkObjectResult($"Usuário {usuario.Nome} adicionado com sucesso.");
}
}
Neste exemplo, a função responde a solicitações POST e adiciona um novo usuário ao banco de dados.
5. Testando Localmente
Antes de levar sua função para a nuvem, é sempre uma boa prática testá-la localmente. Usando o Azure Functions Tools, você pode facilmente iniciar sua função e fazer solicitações a ela, garantindo que tudo funcione como esperado.
6. Elevando ao Azure
Uma vez satisfeito com sua função, é hora de publicá-la no Azure. O Visual Studio oferece uma opção integrada para isso, ou você pode usar a linha de comando com func azure functionapp publish.
7. Conclusão e Limpeza
Depois de experimentar e testar suas funções, lembre-se de limpar os recursos do Azure para evitar custos desnecessários.
Perguntas para Reflexão:
#Azure #FunçõesAzure #DotNet6 #Serverless #Desenvolvimento