AWS Lambda: Guia Completo para Iniciantes (com exemplos!)

Foto do autor

By luis

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?