Desvendando o Poder das Funções Azure com .NET Core: Um Guia Prático

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:

  • .NET 6 SDK: A base para qualquer desenvolvimento .NET.
  • Azure Functions Tools: Essencial para criar, depurar e implantar Funções Azure.
  • Visual Studio 2022 ou versão posterior: Embora seja possível trabalhar sem ele, o Visual Studio facilita muito o processo.


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:

  • Via Visual Studio: Basta selecionar "Azure Functions" ao criar um novo projeto.
  • Via Linha de Comando: Execute o comando func init.


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:

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:

  1. Como as Funções Azure se comparam a outras soluções serverless no mercado?
  2. Quais são as melhores práticas para otimizar o desempenho e os custos ao usar Funções Azure?
  3. Como as Funções Azure podem ser integradas a outros serviços Azure para criar soluções robustas?


#Azure #FunçõesAzure #DotNet6 #Serverless #Desenvolvimento

Entre para ver ou adicionar um comentário

Outros artigos de Felipe Serra

Outras pessoas também visualizaram

Conferir tópicos