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

Índice:

Anonim

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

O que é sem servidor?

Sem servidor é um termo que geralmente se refere a aplicativos sem servidor. Os aplicativos sem servidor são aqueles que não precisam de nenhuma configuração de servidor e não exigem o gerenciamento de servidores.

O que é AWS Lambda?

O AWS Lambda é uma plataforma de computação sem servidor orientada a eventos fornecida pela Amazon como parte do Amazon Web Services. Portanto, você não precisa se preocupar com quais recursos da AWS iniciar 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 nos serviços AWS, como adicionar / excluir arquivos no intervalo S3, solicitação HTTP do gateway da API da Amazon, etc. No entanto, o Amazon Lambda só pode ser usado para executar tarefas em segundo plano.

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

Neste tutorial do AWS Lambda para iniciantes, você aprenderá:

  • Como funciona o AWS Lambda?
  • Eventos que acionam o AWS Lambda
  • Conceitos do AWS Lambda
  • AWS Lambda VS AWS EC2
  • AWS Lambda VS AWS Elastic Beanstalk
  • Casos de uso do AWS Lambda
  • Melhores práticas da função Lambda
  • Quando não usar o AWS Lambda
  • Vantagens de usar AWS Lambda
  • Limitações do AWS Lambda

Como funciona o AWS Lambda?

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

Etapa 1: 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 compatíveis com a função AWS Lambda.

Etapa 2: esses são alguns serviços da AWS que permitem acionar o AWS Lambda.

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

Etapa 4: executa o código AWS Lambda quando é acionado por serviços AWS:

Etapa 5: a AWS cobra apenas quando o código lambda da AWS é executado, e não de outra forma.

Isso acontecerá nos seguintes cenários:

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

Observação: você deve se lembrar que cobrará pelos serviços da AWS apenas 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 deletar 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
  • O DynamoDB pode acionar o AWS Lambda sempre que houver dados adicionados, modificados e excluídos da tabela.
  • Ajuda a agendar o evento para realizar a tarefa no padrão de tempo regular.
  • Modificações em objetos em buckets S3
  • Notificações enviadas do Amazon SNS.
  • O AWS Lambda pode ser usado para processar os logs do CloudTrail
  • O API Gateway permite que você acione o AWS Lambda em métodos GET / POST.

Conceitos do AWS Lambda

Função:

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

Runtimes:

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

Fonte do evento:

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

Camadas Lambda:

As camadas lambda são um mecanismo de distribuição importante 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 e dos recursos imutáveis ​​que ele usa.

Fluxos de registro:

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

Como usar AWS Lambda

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

Etapa 1 ) Acesse https://aws.amazon.com/lambda/ e comece

Etapa 2 ) Crie uma conta ou faça login com sua conta existente

Etapa 3 ) Na próxima página Lambda,

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

Etapa 4 ) Você verá a saída

AWS Lambda VS AWS EC2

Aqui, estão algumas das principais diferenças entre AWS Lambda e EC2.

Parâmetros AWS Lambda AWS EC2
Definição AWS Lambda é uma plataforma como serviço (PaaS). Ele 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 virtualizada.
Flexibilidade Não oferece nenhuma 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 de selecionar a variedade de instâncias, sistemas operacionais personalizados, patches de segurança e rede, etc.
Processo de instalação Você precisa selecionar seu 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 para o EC2.
Restrições ambientais É restrito a poucos idiomas. Sem restrições ambientais.

AWS Lambda VS AWS Elastic Beanstalk

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

Parâmetros AWS Elastic Beanstalk AWS Lambda
Tarefa principal Implante e gerencie os aplicativos na nuvem AWS sem se preocupar com a infraestrutura que executa esses aplicativos. O AWS Lambda é usado para executar e 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ê a liberdade de selecionar recursos da AWS; Por exemplo, você pode escolher a instância EC2 que é ideal de acordo com sua aplicação. Você não pode selecionar os recursos AWS, como um tipo de instância EC2, Lambda oferece recursos com base em sua carga de trabalho.
Tipo de sistema É um sistema com estado. É um sistema sem estado.

Casos de uso do AWS Lambda

O AWS Lambda é usado para uma ampla variedade de aplicativos, como:

  • Ajuda no processo de ETL
  • Permite que você execute o processamento de arquivos em tempo real e o processamento de fluxo em tempo real
  • Use para criar aplicativos da web
  • Use em produtos da Amazon como Alexa Chatbots e Amazon Echo / 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 das funções do AWS Lambda:

  • Use o "tempo limite" certo.
  • Utilize as funções de armazenamento local que tem 500 MB de tamanho 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 CloudWatch integrado de suas funções do Lambda para visualizar e otimizar as latências de solicitação.

Quando não usar o AWS Lambda

A seguir está a situação em que Lambda certamente não é uma opção ideal:

  • Não é apropriado usar pacotes de software AWS Lambda ou aplicativos que dependem da chamada de RPCs do Windows subjacentes
  • Se for usado para aplicativos de software personalizados com contratos de licença, como processamento de documentos do MS-Office, bancos de dados Oracle, etc.
  • O AWS Lambda não deve ser usado para processos de hardware personalizados, como aceleração de GPU, afinidade de hardware.

Vantagens de usar AWS Lambda

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

  • AWS Lambda é uma ferramenta altamente flexível para usar
  • Ajuda você a conceder acesso a recursos, incluindo VPCs
  • Autor diretamente com o editor WYSIWYG no console.
  • Você pode usá-lo como um plug-in para Eclipse e Visual Studio.
  • Como é uma arquitetura sem servidor, você não precisa se preocupar com o gerenciamento ou provisionamento de servidores.
  • Você não precisa configurar nenhuma máquina virtual.
  • Ajuda os desenvolvedores a executar e executar a resposta do código a eventos sem construir nenhuma infraestrutura.
  • Você só precisa para o tempo de computação gasto, apenas quando seu código é 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 provisionar ou gerencie qualquer outro servidor
  • Ajuda você a executar o código apenas 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 cronômetros de eventos externos para realizar tarefas agendadas.
  • A função Lambda no 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 escaladas rapidamente.
  • O AWS Lambda é rápido, por isso executará seu código em milissegundos.

Limitações do AWS Lambda

Aqui estão os contras / desvantagens de usar o 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 seu código exigir.
  • A execução simultânea é limitada a 100
  • A AWS Lambda dependia completamente da AWS para a infraestrutura; você não pode instalar nenhum software adicional se o 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 do Lambda ajudam você a escrever seus logs apenas no CloudWatch. Esta é a única ferramenta que permite monitorar ou solucionar problemas de suas funções.
  • Seu tempo limite de execução de código é de apenas 5 minutos.

Resumo

  • Sem servidor é um termo que geralmente se refere a aplicativos sem servidor.
  • O AWS Lambda é um desses serviços de computação sem servidor. Portanto, você não precisa se preocupar com quais recursos da AWS iniciar ou como eles irão gerenciá-los.
  • Uma função é um programa ou script executado no Lambda sem servidor AWS.
  • O tempo de execução permite funções em várias linguagens que são executadas no mesmo ambiente de execução de base.
  • Uma fonte de evento é um serviço AWS, como Amazon SNS, ou um serviço personalizado.
  • As camadas lambda são um mecanismo de distribuição importante para bibliotecas, tempos de execução personalizados e outras dependências de funções importantes.
  • O fluxo de log permite que você anote seu código de função com instruções de log personalizadas que ajudam a analisar o fluxo de execução e o desempenho de suas funções do Lambda.
  • AWS Lambda é uma plataforma como serviço (PaaS). Ele 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 virtualizada.
  • Implante e gerencie os aplicativos na nuvem AWS sem se preocupar com a infraestrutura que executa esses aplicativos.
  • O AWS Lambda é usado para executar e executar seu código de back-end. Você não pode usá-lo para implantar um aplicativo.
  • O AWS Lambda ajuda você no processo de ETL.
  • A prática recomendada da função Lambda na AWS é usar o "tempo limite" certo.
  • Não é apropriado usar pacotes de software AWS Lambda ou aplicativos que dependem da chamada de RPCs do Windows subjacentes
  • O 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ê usa o AWS Lambda é inserir, atualizar e excluir dados da tabela Dynamo DB.