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,
- Edite o código
- 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.