Skip to content

nolram/serverless-template-nodejs

Repository files navigation

Serverless App Dynamodb

Aplicação Lambda de exemplo, escrito em Typescript e Node 14, utiliza o framework Serverless. Realiza a criação de AWS HTTP API Gateway e uma tabela DynamoDB e realiza o deploy de duas funções AWS Lambda, getUser e insertUser.

Execução

Deploy

asciicast

Requisitos

Node 16
Serverless

Rodando Localmente

Necessário ter um DynamoDB rodando localmente, existe um script python (necessário a biblioteca boto) e um docker-compose.yml na pasta dynamodb-local com o setup local necessário.

Instalar o Serverless

npm install -g serverless

Com o DynamoDB rodando localmente e as dependencias instaladas yarn basta rodar o comando:

yarn start:dev

Deploy

Necessário ter credenciais AWS na pasta ~/.aws/credentials com as devidas permissões de uso.

sls deploy --stage dev -r us-east-1 -c serverless.yml

Teste

curl --location --request POST 'https://CHANGE_URL/user' \
--header 'Content-Type: application/json' \
--data-raw '{
    "name": "Marlon",
    "email": "marlonbquadros@gmail.com"
}'

curl --location --request GET 'https://CHANGE_URL/user/user?email=marlonbquadros@gmail.com'

CI/CD

Na pasta .cicd existe um template de CloudFormation para a configuração de um AWS CodePipeline com AWS CodeBuild para realizar o deploy do serviço Lambda. README.md dentro da pasta com os comandos necessários para realizar o deploy.

Diretório

.
├── .cicd
│   ├── Pipeline.yml
│   ├── README.md
│   └── buildspec
│       └── buildspec_cicd.yml
├── .env-example
├── .eslintignore
├── .eslintrc.js
├── .husky
│   ├── .gitignore
│   ├── pre-commit
│   └── pre-push
├── .nvmrc
├── .prettierignore
├── .prettierrc.js
├── README.md
├── dbconfig.ts
├── dynamodb-local
│   ├── config_dynamodb_local.py
│   ├── docker-compose.yml
│   └── requirements.txt
├── package-lock.json
├── package.json
├── resource
│   └── dynamodb
│       └── DynamoDBTable.yml
├── serverless.yml
├── src
│   ├── app.ts
│   ├── core
│   │   ├── container.ts
│   │   └── services
│   │       └── user.ts
│   ├── env.ts
│   ├── http
│   │   ├── controllers
│   │   │   └── user.ts
│   │   ├── index.ts
│   │   └── schemas
│   │       └── user.ts
│   ├── infrastructure
│   │   ├── adapter
│   │   │   └── dynamodb.ts
│   │   ├── container.ts
│   │   ├── database.ts
│   │   └── repository
│   │       └── user.ts
│   ├── middleware
│   │   └── validator.ts
│   ├── server.ts
│   └── types
│       ├── core.d.ts
│       ├── env.d.ts
│       ├── infrastructure.d.ts
│       └── user.d.ts
└── tsconfig.json

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages