Skip to content

Neste projeto criamos uma infraestrutra em nuvem AWS com API Gateway, DynamoDB, AWS Lambda e AWS CloudFormation utilizando o framework Serverless para o desenvolvimento baseada em Infraestrutura as a Code.

Notifications You must be signed in to change notification settings

thallyta-castro-cv/serverless-project-aws

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API Node.js com Serverless Framework em ambiente AWS

Este repositório contém o código fonte do Bootcamp Cloud AWS. Neste projeto criamos uma infraestrutra em nuvem AWS com API Gateway, DynamoDB, AWS Lambda e AWS CloudFormation utilizando o framework Serverless para o desenvolvimento baseada em Infraestrutura as a Code.

Etapas

Pré requisitos:

Setup Inicial

Credenciais AWS

  • Criar usuário: AWS Management Console -> IAM Dashboard -> Create New User -> <nome do usuário> -> Permissions "Administrator Access" -> Programmatic Access -> Dowload Keys
  • No terminal: $ serverless config credentiaals --provide aws --key<sua-key> --secret<sua-secret> -> colar as credenciais geradas anteriormente

Configurar o framework Serverless

$ npm i -g serverless

Desenvolvimento do projeto

$ serverless
Login/Register: No
Update: No
Type: Node.js REST API
Name: dio-live
$ cd dio-live
$ code .
  • No arquivo serverless.yml adicionar a região region: us-east-2 dentro do escopo de provider:
  • Salvar e realizar o deploy $ serverless deploy -v

DynamoDB

Atualizar o arquivo serverless.yml

resources:
  Resources:
    ItemTable:
      Type: AWS::DynamoDB::Table
      Properties:
          TableName: ItemTable
          BillingMode: PAY_PER_REQUEST
          AttributeDefinitions:
            - AttributeName: id
              AttributeType: S
          KeySchema:
            - AttributeName: id
              KeyType: HASH

Desenvolver funções lambda

- Pasta /src do repositório
- Obter arn da tabela no DynamoDB AWS Console -> DynamoDB -> Overview -> Amazon Resource Name (ARN)
- Atualizar arquivo serverless.yml com o código a seguir, abaixo do ```region:```
  iam:
    role:
        statements:
          - Effect: Allow
            Action:
              - dynamodb:PutItem
              - dynamodb:UpdateItem
              - dynamodb:GetItem
              - dynamodb:Scan
            Resource:
              - arn:aws:dynamodb:us-east-1:167880115321:table/ItemTable
  • Instalar dependências

npm init npm i uuid aws-sdk

  • Atualizar lista de funções no arquivo serverless.yml
functions:
hello:
  handler: src/hello.handler
  events:
    - http:
        path: /
        method: get
insertItem:
  handler: src/insertItem.handler
  events:
    - http:
        path: /item
        method: post
fetchItems:
  handler: src/fetchItems.handler
  events:
    - http:
        path: /items
        method: get
fetchItem:
  handler: src/fetchItem.handler
  events:
    - http:
        path: /items/{id}
        method: get
updateItem:
  handler: src/updateItem.handler
  events:
    - http:
        path: /items/{id}
        method: put

About

Neste projeto criamos uma infraestrutra em nuvem AWS com API Gateway, DynamoDB, AWS Lambda e AWS CloudFormation utilizando o framework Serverless para o desenvolvimento baseada em Infraestrutura as a Code.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published