Entenda de forma prática os benefícios de integrar o AWS Lambda com outros serviços da plataforma!

O AWS Lambda é uma plataforma que permite executar código sem a necessidade de provisionar ou gerenciar servidores. Ele é altamente flexível e pode ser integrado com uma variedade de serviços da AWS e outras plataformas externas.

 Algumas das integrações que o serviço permite fazer são:

1. Integração com eventos da AWS: O Lambda pode ser acionado automaticamente em resposta a eventos gerados por outros serviços da AWS, como o Amazon S3, Amazon DynamoDB, Amazon Kinesis, Amazon Simple Notification Service (SNS) e Amazon Simple Queue Service (SQS).

2. Integração com APIs: O Lambda pode ser usado como um endpoint para APIs RESTful, permitindo que o código seja executado em resposta a solicitações de API.

3. Integração com ferramentas de DevOps: O Lambda pode ser usado com ferramentas de integração e entrega contínuas, como o AWS CodePipeline e o AWS CodeDeploy, para automatizar o processo de implantação de código.

4. Integração com serviços externos: O Lambda pode ser usado para integrar com serviços externos, como o Salesforce, Twilio e Slack, permitindo que o código seja executado em resposta a eventos gerados por esses serviços.

5. Integração com bancos de dados: O Lambda pode ser usado para integrar com bancos de dados, como o Amazon RDS e o Amazon Aurora, permitindo que o código seja executado em resposta a eventos gerados pelo banco de dados.

Essas são apenas algumas das integrações possíveis com o AWS Lambda. O serviço é altamente flexível e pode ser integrado com uma ampla variedade de serviços e plataformas externas.

Pensando nessa variedade de integrações e flexibilidade que o serviço nos fornece, a pergunta que fica aqui é, até onde podemos chegar?

Bom, a resposta para isso é muito simples…

Como dizem muitos sábios “o céu é o limite!!!”

Integração com serviços AWS

Claro que pelo Lambda ser desenvolvido e mantido pela AWS, a integração facilitada com outros serviços nativos existe e funciona muito bem. No entanto, cada serviço da AWS possui suas próprias peculiaridades e nuances, e é importante estar ciente dessas peculiaridades ao integrar o Lambda com outros serviços. Nesta seção, vamos discutir algumas dessas peculiaridades de alguns dos serviços mais comuns que são integrados com o AWS Lambda. Compreender essas peculiaridades pode ajudar a garantir que a integração seja feita da forma mais eficiente e eficaz possível.

Amazon S3:

Quando se trata de integração do AWS Lambda com o Amazon S3, há várias maneiras de enviar informações para o Lambda ou acioná-lo a partir de objetos que são adicionados a um bucket do S3.

Uma maneira é usar um gatilho do S3, que pode ser configurado para acionar o Lambda sempre que um objeto é adicionado, excluído ou atualizado em um bucket do S3. O gatilho do S3 pode ser configurado para acionar o Lambda de forma síncrona ou assíncrona, dependendo das necessidades específicas.

Outra forma é usar o serviço Amazon S3 Event Notifications, que permite monitorar e receber notificações quando ocorrem eventos específicos no bucket do S3. O serviço pode ser configurado para enviar uma notificação para uma fila do Amazon Simple Queue Service (SQS), um tópico do Amazon Simple Notification Service (SNS) ou um endpoint HTTP, que pode então acionar o Lambda.

Além disso, também é possível acionar o Lambda diretamente a partir de um objeto no S3, usando a API do AWS Lambda para enviar um comando para o serviço. Isso permite que você envie informações diretamente do objeto para o Lambda e execute ações específicas com base nos dados do objeto.

Essas são algumas das maneiras mais comuns de integrar o AWS Lambda com o Amazon S3. Cada abordagem tem suas próprias vantagens e desvantagens, e é importante escolher a abordagem certa com base nas necessidades específicas do projeto.

Veja um exemplo em Python do envio de objetos do Lambda para um S3 bucket:

Agora note a diferença do exemplo acima para outro, onde o Lambda que é acionado pelo S3 Event Notification:

Amazon DynamoDB:

Quando se trata do DynamoDB, um banco de dados NoSQL gerenciado pela AWS, é possível integrá-lo com o Lambda da mesma forma que mencionamos anteriormente com o Amazon S3.

O Lambda pode ser configurado para enviar e receber dados do DynamoDB. É possível criar uma função Lambda que seja acionada quando ocorrerem determinados eventos no DynamoDB, como a inserção de novos itens ou atualizações em um item existente.

Por exemplo, você pode usar o Lambda para receber notificações quando novos itens são adicionados ao banco de dados DynamoDB e executar um código personalizado para processar esses itens. Ou, você pode usar o Lambda para adicionar novos itens ao DynamoDB a partir de uma fonte externa, como uma API HTTP.

Para integrar o DynamoDB com o Lambda, é necessário criar uma função Lambda que receba os eventos do DynamoDB e execute o código desejado. Em seguida, é necessário configurar o DynamoDB para enviar notificações para essa função Lambda quando ocorrerem eventos específicos.

Veja um exemplo de função Lambda, em Python, enviando dados para o DynamoDB:

Agora note a diferença de uma função Lambda que é chamada pelo recurso de stream de uma tabela do DynamoDB:

Mas é possível construir aplicações inteiras com Lambda?

A resposta é sim e serei mais enfático ainda, RECOMENDO MUITO!!!

Como tecnologia, o Lambda está entre as mais modernas de computação, ou seja, a nata da nata. Portanto, o custo-benefício ao utilizar o serviço AWS tende a ser muito vantajoso para seus sistemas, principalmente quando a aplicação completa é construída em cima do Lambda.

Logo abaixo vou deixar alguns exemplos de aplicações que você pode construir em cima deste poderoso serviço AWS:

1 – Processamento de eventos em tempo real: Lambda pode ser usado para processar eventos em tempo real, como logs, streams de dados, notificações e atualizações de banco de dados;

2 – Automação de processos: é possível usar Lambda para automatizar processos, como backups, atualizações de software, fluxos de trabalho de aprovação e outras tarefas comuns de rotina;

3 – Análise de dados: usando serviços como o Amazon Kinesis e o Amazon Redshift, Lambda pode ser usado para processar e analisar grandes volumes de dados em tempo real;

4 – Criação de APIs: Lambda pode ser usado para criar APIs sem servidor para sua aplicação, com integração com outros serviços da AWS como o Amazon API Gateway;

5 – Desenvolvimento de aplicações móveis: com o AWS Mobile Hub, você pode usar Lambda para desenvolver aplicativos móveis sem servidor, incluindo autenticação de usuário, gerenciamento de usuários e armazenamento de dados;

6 – Desenvolvimento de chatbots: Lambda pode ser usado para desenvolver chatbots usando plataformas como o Amazon Lex, permitindo a integração com serviços de mensagens como o Slack e o Facebook Messenger.

Que tal fazer um exemplo você mesmo?

Para começar, acesse: https://github.com/gugamainchein/serverless-framework-typescript

O repositório do GitHub em questão contém um projeto desenvolvido com o framework Serverless e utilizando a linguagem TypeScript. O Serverless Framework é uma plataforma para desenvolvimento de aplicações sem servidor, que permite que os desenvolvedores criem e implantem facilmente aplicações em serviços gerenciados na nuvem, como AWS Lambda, Azure Functions e Google Cloud Functions.

O projeto contém um conjunto de arquivos que descrevem a infraestrutura da aplicação, além dos códigos-fonte e dependências necessárias para sua execução. O código-fonte está organizado em módulos que representam diferentes funcionalidades da aplicação, como a autenticação do usuário e o gerenciamento de tarefas.

O uso de TypeScript, uma linguagem de programação que adiciona recursos de tipagem estática ao JavaScript, traz uma série de benefícios para o desenvolvimento da aplicação, como melhorias na produtividade, manutenção de código mais fácil e redução de erros.

O projeto apresenta um exemplo de como criar uma aplicação sem servidor escalável, utilizando uma série de serviços gerenciados da AWS, como AWS Lambda, API Gateway, DynamoDB e S3. É um bom exemplo para quem deseja aprender como utilizar o Serverless Framework com TypeScript, bem como explorar a integração com serviços da AWS.

foto-Gustavo-Mainchein
Gustavo Mainchein Full Stack Developer Senior na Darede
gustavo.mainchein@darede.com.br

Gustavo possui larga experiência em desenvolvimento de software e cloud computing. Ele possui diversas certificações da Hashicorp e da AWS, sendo a última AWS DevOps Engineer – Professional.

OUTRAS PUBLICAÇÕES

Cloud Computing: Tendências

Nos últimos anos, a cloud foi uma das áreas que mais cresceram, e a expectativa futura é ainda mais animadora. Confira o artigo sobre suas tendências.

EBS Snapshot

EBS Snapshot O pai ta on!! No ecossistema da Amazon Web Services (AWS), o Amazon Elastic Block Store (EBS) desempenha um papel fundamental no armazenamento

Nós usamos cookies para garantir e oferecer a melhor experiência de navegação em nosso site! Mais informações