O que é AWS Lambda? Função Lambda com exemplos

Antes da função AWS Lambda, vamos entender:

O que é sem servidor?

Serverless é um termo que geralmente se refere a aplicativos sem servidor. Aplicativos sem servidor são aqueles que não precisam de nenhum provisionamento de servidor e não exigem gerenciamento de servidores.

O que é AWS Lambda?

AWS Lambda é uma plataforma de computação sem servidor e orientada a eventos fornecida pela Amazon como parte de Amazon Serviços web. Portanto, você não precisa se preocupar com quais recursos da AWS lançar ou como irá gerenciá-los. Em vez disso, você precisa colocar o código no Lambda e ele será executado.

No AWS Lambda, o código é executado com base na resposta de eventos em serviços AWS, como adicionar/excluir arquivos no bucket S3, solicitação HTTP de Amazon Gateway de API, etc. No entanto, Amazon Lambda só pode ser usado para executar tarefas em segundo plano.

A função AWS Lambda ajuda você a se concentrar no produto principal e na lógica de negócios, em vez de gerenciar o controle de acesso do sistema operacional (SO), aplicação de patches do SO, dimensionamento correto, provisionamento, escalabilidade, etc.

Como funciona o AWS Lambda?

O seguinte exemplo do AWS Lambda com diagrama de blocos explica o funcionamento do AWS Lambda em algumas etapas fáceis:

Diagrama de blocos AWS Lambda
Diagrama de blocos AWS Lambda

- Primeiro carregue seu código AWS Lambda em qualquer idioma compatível com AWS Lambda. Java, Python, Go e C# são algumas das linguagens suportadas pela função AWS Lambda.

- Estes são alguns serviços da AWS que permitem acionar o AWS Lambda.

- AWS Lambda ajuda você a fazer upload do código e dos detalhes do evento no qual ele deve ser acionado.

- Executa o código AWS Lambda quando é acionado pelos serviços da AWS:

- A AWS cobra apenas quando o código lambda da AWS é executado, e não de outra forma.

Isso acontecerá nos seguintes cenários:

  • Fazer upload de arquivos em um bucket S3
  • Quando o URL do endpoint HTTP get/post é atingido
  • Para adicionar/modificar e excluir tabelas do Dynamo DB
  • No processo de coleta de fluxos de dados
  • Notificação de envio
  • Hospedagem de site
  • Envio de email

Nota: Você deve se lembrar que cobrará pelos serviços da AWS somente quando o código do AWS Lambda for executado, caso contrário, você não precisará pagar nada.

Eventos que acionam o AWS Lambda

Aqui estão os eventos que serão acionados quando você usar o AWS Lambda.

  • Inserir, atualizar e excluir dados da tabela Dynamo DB
  • Para incluir notificações push no SNS
  • Para pesquisar o histórico de log no CloudTrail
  • Entrada em um objeto S3
  • DynamoDB pode acionar o AWS Lambda sempre que houver dados adicionados, modificados e excluídos na tabela.
  • Ajuda você a agendar o evento para realizar a tarefa no horário normal.
  • Modificações em objetos em buckets S3
  • Notificações enviadas de Amazon SNS.
  • AWS Lambda pode ser usado para processar os logs do CloudTrail
  • O API Gateway permite acionar o AWS Lambda em métodos GET/POST.

AWS Lambda Concepts

Função:

Uma função é um programa ou script executado no AWS Lambda. O Lambda passa eventos de invocação para sua função, que processa um evento e retorna sua resposta.

Tempos de execução:

O tempo de execução permite funções em várias linguagens que são executadas no mesmo ambiente de execução base. Isso ajuda você a configurar sua função em tempo de execução. Também corresponde ao seu selecionado linguagem de programação.

Fonte do evento:

Uma fonte de evento é um serviço da AWS, como Amazon SNS ou um serviço personalizado. Esta função de gatilho ajuda você a executar sua lógica.

Camadas Lambda:

As camadas Lambda são um importante mecanismo de distribuição para bibliotecas, tempos de execução personalizados e outras dependências de funções importantes. Este componente AWS também ajuda você a gerenciar seu código de função de desenvolvimento separadamente do código imutável e dos recursos que ele usa.

Fluxos de registro:

O fluxo de log permite que você anote seu código de função com instruções de registro personalizadas que ajudam a analisar o fluxo de execução e o desempenho de suas funções do AWS Lambda.

Como usar o AWS Lambda

Agora, aprenderemos como usar o AWS Lambda com o exemplo do AWS Lambda:

1º Passo) Etapa 1) Abra o URL do AWS Lambda
Vamos para https://aws.amazon.com/lambda/ e comece

Como usar o AWS Lambda

2º Passo) Crie a sua conta aqui
Em seguida, crie uma conta ou faça login com sua conta existente

3º Passo) Edite o código e clique em Executar,
Na próxima página do Lambda,

  1. Edite o código
  2. Clique em Run

Como usar o AWS Lambda

4º Passo) Verifique a saída
Você verá a saída

Como usar o AWS Lambda

AWS Lambda versus AWS EC2

Aqui estão algumas diferenças importantes entre AWS Lambda e EC2.

parâmetros AWS Lambda AWSEC2
Definição AWS Lambda é uma plataforma como serviço (PaaS). Ajuda você a executar e executar seu código de back-end. AWS EC2 é uma infraestrutura como serviço (laaS). Ele fornece recursos de computação virtualizados.
Flexibilidade Não oferece flexibilidade para fazer login em instâncias de computação. Ele permite que você escolha um sistema operacional personalizado ou tempo de execução de idioma. Oferece a flexibilidade para selecionar a variedade de instâncias, sistemas operacionais personalizados, patches de segurança e rede, etc.
processo de instalação Você precisa selecionar o ambiente onde deseja executar o código e enviar o código para o AWS Lambda. Pela primeira vez no EC2, você deve escolher o sistema operacional e instalar todo o software necessário e, em seguida, enviar seu código no EC2.
Restrições de ambiente É restrito a poucos idiomas. Sem restrições ambientais.

AWS Lambda versus AWS Elastic Beanstalk

Aqui estão algumas diferenças importantes entre AWS Lambda e Elastic Beanstalk.

parâmetros AWS Elastic Beanstalk AWS Lambda
Tarefa principal Implante e gerencie aplicativos na Nuvem AWS sem se preocupar com a infraestrutura que executa esses aplicativos. AWS Lambda é usado para executar seu código de back-end. Você não pode usá-lo para implantar um aplicativo.
Seleção de recursos AWS Dá a você liberdade para selecionar recursos da AWS; Por exemplo, você pode escolher a instância EC2 que seja ideal de acordo com sua aplicação. Você não pode selecionar os recursos da AWS, como um tipo de instância EC2, o Lambda oferece recursos com base na sua carga de trabalho.
Tipo de sistema É um sistema com estado. É um sistema sem estado.

Casos de uso do AWS Lambda

AWS Lambda usado para uma ampla gama de aplicações como:

  • Ajuda você no processo ETL
  • Permite que você execute processamento de arquivos e processamento de fluxo em tempo real
  • Use para criar aplicativos da web
  • Use em Amazon produtos como Alexa Chatbots e Amazon Eco/Alexa
  • Processamento de dados (análise de streaming em tempo real)
  • Backups automatizados de tarefas diárias
  • Back-ends escaláveis ​​(aplicativos móveis, dispositivos loT)
  • Ajuda você a executar a lógica de back-end do lado do servidor
  • Permite filtrar e transformar dados

Melhores práticas da função Lambda

Aqui estão algumas práticas recomendadas de AWS Funções Lambda:

  • Use o “tempo limite” correto.
  • Utilize as funções de armazenamento local com tamanho de 500 MB na pasta /temp
  • Minimizar o uso de código de inicialização que não está diretamente relacionado ao processamento do evento atual.
  • Você deve usar o monitoramento integrado do CloudWatch de suas funções do Lambda para visualizar e otimizar as latências de solicitação.

Quando não usar AWS Lambda

A seguir estão as situações em que Lambda certamente não é uma opção ideal:

  • Não é apropriado usar pacotes de software ou aplicativos AWS Lambda que dependam de chamadas subjacentes. Windows RPCs
  • Se for usado para aplicativos de software personalizados com acordos de licenciamento, como processamento de documentos MS-Office, Oracle bancos de dados, etc.
  • O AWS Lambda não deve ser usado para processos de hardware personalizados, como aceleração de GPU e afinidade de hardware.

Vantagens de usar o AWS Lambda

Aqui estão os prós/benefícios de usar AWS lambda:

  • AWS Lambda é uma ferramenta altamente flexível de usar
  • Ajuda você a conceder acesso a recursos, incluindo VPCs
  • Autor diretamente com WYSIWEditor YG no console.
  • Você pode usá-lo como um plugin para Eclipse e Visual Studio.
  • Por se tratar de uma arquitetura serverless, você não precisa se preocupar em gerenciar ou provisionar servidores.
  • Você não precisa configurar nenhum Máquina virtual.
  • Ajuda os desenvolvedores a executar e executar a resposta do código a eventos sem construir nenhuma infraestrutura.
  • Você só precisa saber o tempo de computação necessário, somente quando o código for executado.
  • Você pode monitorar o desempenho do seu código em tempo real por meio do CloudWatch.
  • Ele permite que você execute seu código sem provisionamento ou gerencie qualquer outro servidor
  • Ajuda você a executar o código somente quando necessário
  • Você pode escaloná-lo automaticamente para lidar com algumas solicitações por dia e até mesmo oferecer suporte a mais de milhares de solicitações por segundo.
  • O AWS Lambda pode ser configurado com a ajuda de temporizadores de eventos externos para executar tarefas agendadas.
  • A função Lambda na AWS deve ser configurada com eventos externos e temporizadores; ele pode ser usado para agendamento.
  • As funções Lambda não têm estado para que possam ser dimensionadas rapidamente.
  • O AWS Lambda é rápido, portanto executará seu código em milissegundos.

Limitações do AWS Lambda

Aqui estão os contras/desvantagens de usar AWS Lambda:

  • A ferramenta AWS Lambda não é adequada para projetos pequenos.
  • O AWS Lambda depende inteiramente da AWS para a infraestrutura, portanto, você não pode instalar nenhum software adicional se o seu código exigir.
  • A execução simultânea é limitada a 100
  • AWS Lambda dependia completamente da AWS para a infraestrutura; você não pode instalar nenhum software adicional se seu código exigir.
  • Seu volume de memória pode variar entre 128 a 1536 MB.
  • A solicitação de evento não deve exceder 128 KB.
  • As funções Lambda ajudam você a gravar seus logs apenas no CloudWatch. Esta é a única ferramenta que permite monitorar ou solucionar problemas de suas funções.
  • O tempo limite de execução do código é de apenas 5 minutos.

Resumo

  • Serverless é um termo que geralmente se refere a aplicativos sem servidor.
  • AWS Lambda é um desses serviços de computação sem servidor. Portanto, você não precisa se preocupar com quais recursos da AWS lançar ou como eles irão gerenciá-los.
  • Uma função é um programa ou script executado no AWS Serverless Lambda.
  • O tempo de execução permite funções em várias linguagens que são executadas no mesmo ambiente de execução base.
  • Uma fonte de evento é um serviço da AWS, como Amazon SNS ou um serviço personalizado.
  • As camadas Lambda são um importante mecanismo de distribuição para bibliotecas, tempos de execução personalizados e outras dependências de funções importantes.
  • O fluxo de log permite anotar seu código de função com instruções de registro personalizadas que ajudam a analisar o fluxo de execução e o desempenho de suas funções Lambda.
  • AWS Lambda é uma plataforma como serviço (PaaS). Ajuda você a executar e executar seu código de back-end.
  • AWS EC2 é uma infraestrutura como serviço (laaS). Ele fornece recursos de computação virtualizados.
  • Implante e gerencie aplicativos na Nuvem AWS sem se preocupar com a infraestrutura que executa esses aplicativos.
  • AWS Lambda é usado para executar seu código de back-end. Você não pode usá-lo para implantar um aplicativo.
  • O AWS Lambda ajuda você a Processo ETL.
  • A prática recomendada da função Lambda na AWS é usar o “tempo limite” correto.
  • Não é apropriado usar pacotes de software ou aplicativos AWS Lambda que dependam de chamadas subjacentes. Windows RPCs
  • AWS Lambda é uma ferramenta altamente flexível.
  • A ferramenta AWS Lambda não é adequada para projetos pequenos.
  • Um evento comum que será acionado quando você usar o AWS Lambda é inserir, atualizar e excluir dados da tabela Dynamo DB.