Versão em inglês: https://medium.com/@gusiol/invoking-lambda-with-kinesis-locally-with-aws-sam-61ef77613284

Ícones do AWS SAM, Lambda e Kinesis Data Stream

SAM (AWS Serverless Application Model) é um framework open-source construído com base no serviço de infraestrutura como código (IaC) da AWS, Cloudformation, específico para aplicações serverless. Uma de suas vantagens é permitir rodar aplicações serverless localmente para debug e testes sem custos. Neste tutorial eu vou demonstrar como utilizar o SAM para disparar uma função Lambda através de um evento do Kinesis Data Stream localmente.

Template SAM

SAM utiliza um arquivo de template chamado template.yaml para definir os recursos da aplicação. Segue um template básico com uma função Lambda.


Portuguese version: https://medium.com/@gusiol/disparando-lambda-atrav%C3%A9s-do-kinesis-localmente-com-aws-sam-e535e40e795d

SAM (AWS Serverless Application Model) is an open-source framework build on top of AWS infrastructure as code (IaC) service CloudFormation specific for serverless applications. One of its advantages is providing a way to run your serverless applications locally for debugging and testing without charges. In this tutorial I will show how to use SAM to invoke a Lambda function locally with a custom Kinesis Data Stream event.

SAM Template

SAM utilizes a template file named template.yaml to define the application resources. Here is a basic template with a Lambda function.


Se você trabalha com desenvolvimento backend moderno, é inevitável que um dia você vá integrar sua aplicação com serviços externos. Quando dados sensíveis são compartilhados nesta integração, é importante criptografá-los para fornecer uma camada adicional de proteção, caso haja vazamentos ou ciberataques.

Criptografia simétrica

Por muitos anos, criptografia era alcançada utilizando uma chave compartilhada entre dois lados (transmissor e receptor), utilizada para criptografar uma mensagem por um dos lados e descriptografar do outro, por isso o nome simétrica. A criptografia simétrica ainda é amplamente usada, mas possui pontos fracos.

Ponto fraco em criptografia simétrica

Para estabelecer uma comunicação utilizando criptografia…


If you work with modern backend development it is inevitable that one day you’ll integrate your application with external services. When the exchanged data includes sensible information (ex: users personal information, company internal report) it is important to encrypt it to provide an additional layer of protection in the event of a leak or cyber attack.

Symmetric cryptography

For many years, cryptography was achieved using a shared key between two parties (sender and receiver). The key is used to encrypt a message by one party and to decrypt it by the other, hence the name symmetric. …


Let’s build a application with NestJS and MongoDB.

  1. Install NestJS
  2. Install Mongoose


Há alguns dias eu desenvolvi um projeto que envolvia manipular arquivos num bucket do serviço S3 da AWS. A minha primeira ideia foi utilizar o armazenamento local durante o desenvolvimento. No entanto, eu também pretendia disparar notificações para uma fila no SQS ao criar novos objetos no bucket. Este cenário não é facilmente simulado, logo, eu teria que utilizar os serviços da AWS durante o desenvolvimento, o que envolveria custos, já que meu período de testes havia expirado. Após pesquisar sobre alternativas sem custo, me deparei com o Localstack.

O Localstack é um projeto desenvolvido inicialmente pela Atlassian e, atualmente…


Versão em português: https://medium.com/@gusiol/hospedando-e-gerenciando-aplica%C3%A7%C3%B5es-num-mesmo-dom%C3%ADnio-com-nginx-proxy-e-portainer-ce13d3dd5e3e

One possibility is to use docker. This way the environments are separated in containers and we can expose each in distinct ports of the host. However the routing through ports is not very practical. A better approach is to use the DNS to map each application to a particular subdomain. …


English version: https://medium.com/@gusiol/nginx-proxy-and-portainer-multiple-applications-in-one-domain-d82efec0750f

Quando trabalhei numa agência de desenvolvimento web existia a necessidade de testar as aplicações online e mostrá-las para os clientes. Como os projetos eram desenvolvidos em ambientes distintos (linguagem, banco, servidor, versão), surgiu o seguinte questionamento: como servir essas aplicações num só domínio?

Uma possibilidade é utilizar o docker. Dessa forma os ambientes ficam isolados em containers e podemos expor cada um em portas distintas do hospedeiro. No entanto, o roteamento através de portas é pouco prático, o ideal é utilizar um DNS e mapear cada aplicação para um subdomínio distinto. …

Gustavo Simões

Sou o vice-treco do sub-troço. GitHub: https://github.com/guizoxxv

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store