Vamos explorar os princípios básicos do AWS Lambda e como executar uma função passo a passo.
Introdução
Ao desenvolver aplicativos, o objetivo é proporcionar uma experiência de usuário excepcional. Para que isso aconteça, seu aplicativo necessita de um código de back-end que responda a eventos.
No entanto, gerenciar a infraestrutura para hospedar e executar esse código de back-end implica dimensionar, provisionar e ajustar servidores, além de gerenciar atualizações do sistema operacional, aplicar correções de segurança e monitorar toda essa infraestrutura para garantir desempenho e disponibilidade.
Não seria ideal poder concentrar-se na criação de ótimos aplicativos sem se preocupar com a infraestrutura? É nesse contexto que o AWS Lambda se torna uma solução valiosa.
O que é AWS Lambda?
AWS Lambda é um serviço de computação sem servidor que permite executar seu código sem a necessidade de provisionar ou gerenciar servidores. Com o AWS Lambda, você pode executar seu aplicativo ou serviço de back-end sem administração. Basta carregar seu código, e o Lambda se encarrega de executá-lo, escalando a infraestrutura com alta disponibilidade.
O código executado no AWS Lambda é conhecido como função lambda. Atualmente, ele suporta as seguintes linguagens de programação:
- Java
- Python
- C#
- Node.js
- Go
- PowerShell
- Ruby
Além disso, fornece uma API de tempo de execução que pode ser usada para executar funções escritas em outras linguagens (nativas).
Para utilizar o AWS Lambda, existe apenas um pré-requisito: ter uma conta na AWS, por meio da qual é possível acessar o console de gerenciamento da AWS.
O AWS Lambda pode ser considerado um FaaS (Function-as-a-Service) da AWS.
Recursos do AWS Lambda
A seguir, alguns dos recursos mais importantes oferecidos pelo AWS Lambda:
- O AWS Lambda escala a infraestrutura de forma simples, sem necessidade de configuração adicional, reduzindo o trabalho operacional.
- Oferece diversas opções, como AWS S3, CloudWatch, DynamoDB, API Gateway, Kinesis, CodeCommit e muitas outras, para acionar eventos.
- Não exige investimentos iniciais. Você paga apenas pela memória utilizada pela função lambda e pelo número de solicitações, o que torna o serviço econômico.
- O AWS Lambda é seguro, utilizando o AWS IAM para definir todas as funções e políticas de segurança.
- Oferece tolerância a falhas tanto para os serviços que executam o código quanto para a função em si, garantindo a disponibilidade do aplicativo.
Precificação do AWS Lambda
A precificação do AWS Lambda é baseada na duração e na memória utilizada pela função lambda. A alocação máxima de memória para uma função lambda é de 3008 MB, com incrementos de 64 MB. A tabela abaixo apresenta os preços por cada nível de memória a cada 100 milissegundos.
Como o AWS Lambda Funciona?
- Inicialmente, você cria uma função, adicionando informações como a linguagem de programação a ser usada.
- Em seguida, escreve o código no editor do Lambda ou carrega-o em um arquivo zip compatível com a linguagem de programação escolhida.
- Após o carregamento do código, o serviço lida com o dimensionamento da capacidade, aplicação de patches e administração da infraestrutura.
- Para executar o código, você precisa acionar a função lambda por meio de um serviço externo da AWS. Por exemplo, um bucket S3.
- Em poucos segundos, o Lambda estará pronto para acionar sua função automaticamente quando um evento ocorrer. O AWS Lambda executa o código quando o evento de gatilho é chamado, provisionando, gerenciando e monitorando os servidores.
- Se sua função exigir alto poder de processamento, o Lambda escolherá uma instância com mais poder de processamento e RAM. Se o código lambda for executado por poucos segundos, será selecionada uma instância menor para economizar recursos.
Essa é a lógica por trás do funcionamento do AWS Lambda. Agora, demonstraremos seu uso.
Criação de uma Função AWS Lambda
Nesta demonstração, criaremos um jogo simples usando uma função lambda em Node.js. A função lambda simulará o lançamento de um dado, gerando um número aleatório entre 1 e 6 e imprimindo-o.
- Acesse o console de gerenciamento da AWS, digite “Lambda” na barra de pesquisa e clique em Lambda.
- Na janela de funções, clique em “Criar função”.
- Você terá diferentes opções para criar a função. Como vamos criar do zero, selecione “Criar do zero”.
- Preencha as informações necessárias para a função lambda, como o nome da função e a versão do Node.js.
- Você também precisa escolher uma função de execução. Como não temos uma função existente definida na conta AWS, selecione a opção para criar uma nova função. Clique em “Criar função”.
- Uma mensagem de sucesso indicará que a função foi criada. Clique na janela “Designer” para minimizar.
- A seguir, será exibida a janela de código da função.
- Insira o código abaixo no editor. Você também pode enviar o código usando um arquivo zip, mas utilizaremos o editor de código interno da AWS.
- Este código simples gera um número aleatório entre 1 e 6 e o imprime quando a função é invocada.
exports.handler = async (event) => { const min = 1; const max = 6; const randomNum = Math.floor(Math.random() * (max - min + 1)) + min; const out="Resultado do lançamento do dado é: " + randomNum; return out; };
- Clique no botão “Testar” no canto superior direito. Uma janela aparecerá para configurar um evento de teste. Insira um nome de evento e clique em “Configurar”.
- Clique em “Salvar” e depois em “Testar”.
Nos resultados da execução, você verá a saída da função que criamos. Ela imprimirá algo como: “Resultado do lançamento do dado é: 2”.
- Analise os detalhes da execução para ter um resumo completo da função lambda, incluindo o ID da solicitação, duração, recursos configurados e outros detalhes.
- Clique na guia “Monitoramento” para visualizar os logs do CloudWatch e o desempenho da função ao longo do tempo.
- Nos logs criados pelo CloudWatch, você pode verificar o que aconteceu durante a execução da função, que foi monitorada pelo CloudWatch.
Conclusão
Introdução ao Lambda é um processo simples. Se o seu aplicativo empresarial exige a execução de código de back-end, considere uma plataforma sem servidor como o AWS Lambda.
Gostou do artigo? Que tal compartilhar com seus contatos?