-
Notifications
You must be signed in to change notification settings - Fork 4.4k
Expand file tree
/
Copy pathserverless.yml
More file actions
72 lines (65 loc) · 1.8 KB
/
Copy pathserverless.yml
File metadata and controls
72 lines (65 loc) · 1.8 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
service: aws-python-flask-dynamodb-api
frameworkVersion: "4"
stages:
default:
params:
tableName: "users-table-${sls:stage}"
plugins:
- serverless-wsgi
custom:
wsgi:
app: app.app
# serverless-wsgi decides whether to pip-install requirements itself by
# checking for "serverless-python-requirements" in the plugins list; with
# that plugin removed this must be pinned false so wsgi defers to the
# built-in python requirements packaging (activated by custom.pythonRequirements below).
packRequirements: false
# Built-in python requirements packaging activates on this key.
pythonRequirements: {}
provider:
name: aws
runtime: python3.14
architecture: arm64
# Uncomment to easily set up a custom domain. Read the docs for more details:
# https://www.serverless.com/framework/docs/providers/aws/guide/domains
# domain: api.example.com
iam:
role:
statements:
- Effect: Allow
Action:
- dynamodb:Query
- dynamodb:Scan
- dynamodb:GetItem
- dynamodb:PutItem
- dynamodb:UpdateItem
- dynamodb:DeleteItem
Resource:
- Fn::GetAtt: [UsersTable, Arn]
environment:
USERS_TABLE: ${param:tableName}
functions:
api:
handler: wsgi_handler.handler
events:
- http:
path: /
method: ANY
- http:
path: /{proxy+}
method: ANY
resources:
Resources:
UsersTable:
Type: AWS::DynamoDB::Table
Properties:
AttributeDefinitions:
- AttributeName: userId
AttributeType: S
KeySchema:
- AttributeName: userId
KeyType: HASH
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1
TableName: ${param:tableName}