AWS Lambda - Visão geral

AWS Lambdaé um serviço que executa computação sem servidor, que envolve computação sem nenhum servidor. O código é executado com base na resposta de eventos em serviços AWS, como adicionar / remover arquivos no intervalo S3, atualizar tabelas Amazon dB dB, solicitação HTTP do gateway de API da Amazon etc.

Para começar a trabalhar com AWS Lambda, só precisamos enviar o código no serviço AWS Lambda. Todas as outras tarefas e recursos, como infraestrutura, sistema operacional, manutenção de servidor, monitoramento de código, logs e segurança, são cuidados pela AWS.

AWS Lambdasuporta linguagens como Java, NodeJS, Python, C # e Go. Observe que o AWS Lambda funcionará apenas com serviços AWS.

O que é AWS Lambda?

A definição de AWS Lambda conforme dada por sua documentação oficial é a seguinte -

O AWS Lambda é um serviço de computação que permite executar código sem provisionar ou gerenciar servidores. O AWS Lambda executa seu código apenas quando necessário e escala automaticamente, de algumas solicitações por dia a milhares por segundo. Você paga apenas pelo tempo de computação que consome - não há cobrança quando seu código não está em execução.

Como o AWS Lambda funciona?

O diagrama de blocos que explica o funcionamento do AWS Lambda em cinco etapas fáceis é mostrado abaixo -

Step 1 − Faça upload do código lambda da AWS em qualquer uma das linguagens compatíveis com o lambda da AWS, ou seja, NodeJS, Java, Python, C # e Go.

Step 2 − Esses são alguns serviços da AWS nos quais o lambda da AWS pode ser acionado.

Step 3 −AWS Lambda, que possui o código de upload e os detalhes do evento no qual o acionador ocorreu. Por exemplo, evento do Amazon S3, Amazon API Gateway, Dynamo dB, Amazon SNS, Amazon Kinesis, CloudFront, Amazon SES, CloudTrail, aplicativo móvel etc.

Step 4 − Executa o código AWS Lambda apenas quando acionado pelos serviços AWS em cenários como -

  • O usuário carrega arquivos no intervalo S3
  • http get / post endpoint URL é atingido
  • os dados são adicionados / atualizados / excluídos nas tabelas dB do dínamo
  • notificação push
  • coleta de fluxos de dados
  • hospedagem de site
  • envio de email
  • aplicativo móvel, etc.

Step 5 − Lembre-se de que a AWS cobra apenas quando o código lambda da AWS é executado, e não de outra forma.

Vantagens de usar AWS Lambda

O AWS Lambda oferece vários benefícios quando você está trabalhando nisso. Esta seção os discute em detalhes -

Facilidade de trabalhar com código

O AWS Lambda oferece a infraestrutura para fazer upload de seu código. Ele se encarrega de manter o código e dispara o código sempre que o evento necessário acontece. Ele permite que você escolha a memória e o tempo limite necessário para o código.

O AWS Lambda também pode executar solicitações paralelas de acordo com os gatilhos de evento.

Provisão de Log

O AWS Lambda fornece os detalhes do número de vezes que um código foi executado e o tempo gasto para execução, a memória consumida etc. O AWS CloudWatch coleta todos os logs, o que ajuda na compreensão do fluxo de execução e na depuração do código.

Faturamento com base no uso

O faturamento do AWS Lambda é feito com base no uso da memória, na solicitação feita e na execução, que é faturada em incrementos de no mínimo 100 ms. Portanto, para uma execução de 500ms, o faturamento será a cada 100ms. Se você especificar seu código lambda da AWS para ser executado em 500 ms e o tempo de execução for de apenas 200 ms, a AWS cobrará você apenas pelo tempo gasto, ou seja, 200 ms de execução em vez de 500 ms. A AWS sempre cobra pelo tempo de execução usado. Você não precisa pagar se a função não for executada.

Suporte multilíngue

O AWS Lambda oferece suporte a linguagens populares, como Node. js, Python, Java, C # e Go. Essas são linguagens amplamente utilizadas e qualquer desenvolvedor achará fácil escrever código para AWS Lambda.

Facilidade de criação e implantação de código

Existem muitas opções disponíveis para Lambda para autoria e implantação de código. Para escrever seu código, você pode usar o editor online da AWS, Visual Studio IDE ou Eclipse IDE. Ele também oferece suporte para estrutura sem servidor, o que facilita a escrita e a implantação do código AWS Lambda. Além do console AWS, temos AWS-cli para criar e implantar código.

Outras características

Você pode usar o AWS Lambda gratuitamente obtendo um login para o nível gratuito da AWS. Oferece serviço gratuito por 1 ano. Dê uma olhada nos serviços gratuitos oferecidos pelo nível gratuito da AWS.

Desvantagens de usar AWS Lambda

Apesar de muitas vantagens, o AWS Lambda possui as seguintes desvantagens -

  • Não é adequado para pequenos projetos.

  • Você precisa analisar cuidadosamente seu código e decidir a memória e o tempo limite. Caso sua função precise de mais tempo do que o alocado, ela será encerrada de acordo com o tempo limite especificado e o código não será executado totalmente.

  • Como a AWS Lambda depende totalmente da AWS para a infraestrutura, você não pode instalar nenhum software adicional se seu código exigir.

Eventos que acionam o AWS Lambda

Os eventos que podem acionar o AWS Lambda são os seguintes -

  • Entrada em um objeto S3
  • Inserção, atualização e exclusão de dados na tabela Dynamo DB
  • Notificações push do SNS
  • Chamadas GET / POST para API Gateway
  • Modificação de cabeçalhos no visualizador ou solicitação / resposta de origem no CloudFront
  • Entradas de registro no fluxo de dados AWS Kinesis
  • Registrar histórico no CloudTrail

Casos de uso do AWS Lambda

O AWS Lambda é um serviço de computação usado principalmente para executar processos em segundo plano. Ele pode ser acionado quando usado com outros serviços AWS. A lista de serviços AWS onde podemos usar AWS Lambda é fornecida abaixo -

S3 Object e AWS Lambda

O Amazon S3 passa os detalhes do evento para o AWS Lambda quando há qualquer upload de arquivo no S3. Os detalhes do upload do arquivo ou exclusão do arquivo ou movimentação do arquivo são passados ​​para o AWS Lambda. O código no AWS Lambda pode realizar a etapa necessária para quando ele recebe os detalhes do evento. Por exemplo, criando uma miniatura da imagem inserida no S3.

DynamoDB e AWS Lambda

O DynamoDB pode acionar o AWS Lambda quando houver dados adicionados, atualizados e excluídos da tabela. O evento AWS Lambda possui todos os detalhes da tabela AWS DynamoDB sobre a inserção / atualização ou exclusão.

API Gateway e AWS Lambda

O API Gateway pode acionar o AWS Lambda em métodos GET / POST. Podemos criar um formulário e compartilhar detalhes com o endpoint do API Gateway e usá-lo com o AWS Lambda para processamento posterior, por exemplo, fazendo uma entrada dos dados na tabela DynamoDB.

SNS e AWS Lambda

O SNS é usado para notificações push, envio de SMS etc. Podemos acionar o AWS lambda quando houver qualquer notificação push acontecendo no SNS. Também podemos enviar SMS para o número de telefone do AWS Lambda quando ele recebe o gatilho.

Eventos programados e AWS Lambda

Os eventos programados podem ser usados ​​para tarefas cron. Ele pode acionar o AWS Lambda para realizar a tarefa no padrão de tempo regular.

CloudTrail e AWS Lambda

O CloudTrail pode ser útil no monitoramento dos logs da conta. Podemos usar o AWS Lambda para processar posteriormente os logs do CloudTrail.

Kinesis e AWS Lambda

Kinesis é usado para capturar / armazenar dados de rastreamento em tempo real provenientes de cliques em sites, logs, feeds de mídia social e um gatilho para que o AWS Lambda possa fazer processamento adicional nesses logs.

CloudFront e Lambda @ Edge

CloudFront é uma rede de entrega de conteúdo onde você pode hospedar seu site e Lambda @ Edge pode ser usado para processar os cabeçalhos provenientes da solicitação do visualizador, solicitação de origem, resposta de origem e resposta do visualizador. A modificação de cabeçalhos inclui tarefas como modificação de dados de cookies, reescrita de URL, usado para testes AB para alterar a resposta enviada ao usuário de volta, adicionando informações de cabeçalhos extras para fins de segurança etc.