-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserverless.yml
More file actions
157 lines (137 loc) · 3.95 KB
/
Copy pathserverless.yml
File metadata and controls
157 lines (137 loc) · 3.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# Welcome to Serverless!
#
# This file is the main config file for your service.
# It's very minimal at this point and uses default values.
# You can always add more config options for more control.
# We've included some commented out config examples here.
# Just uncomment any of them to get that config option.
#
# For full config options, check the docs:
# docs.serverless.com
#
# Happy Coding!
service: ecom-api
custom:
ecomLivrosTableName: 'java-ecom-livros-${self:provider.stage}'
ecomProdutosTableName: 'java-ecom-produtos-${self:provider.stage}'
provider:
name: aws
runtime: java8
stage: ${opt:stage, 'dev'}
region: ${opt:region, 'us-east-1'}
iamRoleStatements:
- Effect: Allow
Action:
- dynamodb:Query
- dynamodb:Scan
- dynamodb:GetItem
- dynamodb:PutItem
- dynamodb:UpdateItem
- dynamodb:DeleteItem
Resource:
- { "Fn::GetAtt": ["LivrosDynamoDBTable", "Arn" ] }
- { "Fn::GetAtt": ["ProdutosDynamoDBTable", "Arn" ]}
environment:
ECOM_LIVROS_TABLE_NAME: ${self:custom.ecomLivrosTableName}
ECOM_PRODUTOS_TABLE_NAME: ${self:custom.ecomProdutosTableName}
package:
artifact: 'target/${self:service}-${self:provider.stage}.jar'
functions:
#Entidade Livros
listarLivros:
handler: br.com.ufpb.dcx.si.crud.ListarLivrosHandler
events:
- http:
path: /livros
method: get
cadastrarLivro:
handler: br.com.ufpb.dcx.si.crud.CadastrarLivroHandler
events:
- http:
path: /livros
method: post
editarLivro:
handler: br.com.ufpb.dcx.si.crud.EditarLivroHandler
events:
- http:
path: /livros/{id}
method: put
deletarLivro:
handler: br.com.ufpb.dcx.si.crud.DeletarLivroHandler
events:
- http:
path: /livros/{id}
method: delete
getLivro:
handler: br.com.ufpb.dcx.si.crud.GetLivroHandler
events:
- http:
path: /livros/{id}
method: get
#Entidade Produto
listarProdutos:
handler: br.com.ufpb.dcx.si.crud.ListarProdutosHandler
events:
- http:
path: /produtos
method: get
cadastrarProduto:
handler: br.com.ufpb.dcx.si.crud.CadastrarProdutoHandler
events:
- http:
path: /produtos
method: post
editarProduto:
handler: br.com.ufpb.dcx.si.crud.EditarProdutoHandler
events:
- http:
path: /produtos/{id}
method: put
deletarProduto:
handler: br.com.ufpb.dcx.si.crud.DeletarProdutoHandler
events:
- http:
path: /produtos/{id}
method: delete
getProduto:
handler: br.com.ufpb.dcx.si.crud.GetProdutoHandler
events:
- http:
path: /produtos/{id}
method: get
resources:
Resources:
LivrosDynamoDBTable:
Type: AWS::DynamoDB::Table
Properties:
TableName: ${self:custom.ecomLivrosTableName}
AttributeDefinitions:
- AttributeName: id
AttributeType: S
- AttributeName: title
AttributeType: S
KeySchema:
- AttributeName: id
KeyType: HASH
- AttributeName: title
KeyType: RANGE
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1
ProdutosDynamoDBTable:
Type: AWS::DynamoDB::Table
Properties:
TableName: ${self:custom.ecomProdutosTableName}
AttributeDefinitions:
- AttributeName: id
AttributeType: S
- AttributeName: name
AttributeType: S
KeySchema:
- AttributeName: id
KeyType: HASH
- AttributeName: name
KeyType: RANGE
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1