Giter Site home page Giter Site logo

serverless-rocketseat's Introduction

Rocketseat - Exemplo de API REST usando Serverless

Este repositório consiste de uma API feita em Node.js que usa serverless framework, AWS API Gateway, Lambdas e DynamoDB.

Na branch complete você encontra a versão final deste workshop.

Sugiro que você não pare por aqui, durante o workshop passamos muito brevemente por cada ferramenta, sem entrar em detlhes sobre como ela funciona. Pegue um tempo para estudar cada uma delas individualmente e como você pode tirar o máximo de proveito dela.

Rodando o projeto

O foco do workshop foi rodar a aplicação direto na AWS, portanto não abordamos como rodar local. Para saber como você pode rodar local, olhe a sessão Rodando localmente. Tudo foi feito em um Mac, no Linux deve ser bem parecido e no Windows deve ser possível fazer o equivalente com algumas adaptações.

Requisitos

  • Node.js - Há um arquivo .nvmrc no projeto caso queira realizar a instalação usando o nvm.
  • Uma conta na AWS - Se você ainda não tem conta, vai precisar de um cartão de crédito, mas não se preocupe, existe um free tier para experimentar os recursos.
  • Serverless framework - Pode ser instalado usando o comando npm install -g serverless

Fazendo o deploy

  1. Crie uma conta de acesso programático com acesso de admin no IAM da AWS e pegar a chave e a secret.
  2. Configure o serverless para usar essa conta, isso pode ser feito usando o serverless: serverless config credentials -o --provider aws --key <chave> --secret <secret>
  3. Depois de configurar o serverless.yml com os recursos desejados, fazer deploy usando o comando serverless deploy

Ao fazer o deploy, é interessante olhar o que foi criado nos seguintes serviços no console:

  • Cloud Formation
  • S3
  • Lambda
  • API Gateway
  • DynamoDB

E caso queira ver os logs das Lambdas, vá até o detalhe de uma delas e na aba Monitoramento, clique em Visualizar logs no CloudWatch.

Rodando localmente

Durante o workshop, sempre que fazíamos uma modificação, fazíamos o deploy para testar. Em aplicações reais isso se torna inviável, portanto, para conseguir testar com mais facilidade, sugiro o estudo de duas ferramentas:

Links e referências

Eu escrevi um artigo baseado no workshop e que tem algumas das informações que falei durante ele, para acessar clique aqui.

  • Como criar um usuário no IAM - Caso você não tenha familiaridade com a criação de usuários na AWS usando IAM
  • Serverless Express Plugin - Caso tenha interesse em trabalhar com Express ou Koa, é possível usando um plugin do Serverless. Porém vale sempre pesar o que é melhor para o seu caso de uso, por exemplo, o uso do Express pode aumentar o seu tempo de cold start um pouco.
  • Serverless Middleware Plugin - Plugin para a criação de middlewares usando Serverless

Problemas e dúvidas

Caso tenha qualquer dúvida, problema ou sugestão, fique à vontade para criar uma issue neste repo, e eu responderei assim que possível.

serverless-rocketseat's People

Contributors

askmon avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.