-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathserverless.yml
78 lines (76 loc) · 2.32 KB
/
serverless.yml
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
service:
name: ${env:NAME}
plugins:
- serverless-webpack
- serverless-appsync-plugin
- serverless-dotenv-plugin
- serverless-appsync-simulator
- serverless-offline
- serverless-plugin-scripts
provider:
name: aws
timeout: 90
runtime: nodejs12.x
stage: ${env:STAGE}
region: ${env:REGION}
versionFunctions: false
environment:
DB_HOST: ${file(./scripts/get-host.js)}
DB_NAME: ${env:RDS_PREFIX}_${env:STAGE}
DB_USERNAME: ${env:RDS_USERNAME}_${env:STAGE}
vpc:
securityGroupIds:
- { Fn::GetAtt: [ServerlessSecurityGroup, GroupId] }
subnetIds:
- Ref: ServerlessSubnetA
- Ref: ServerlessSubnetB
- Ref: ServerlessSubnetC
resources:
- ${file(./resources/config/roles.yml)}
- ${file(./resources/config/vpc.yml)}
- ${file(./resources/config/subnet.yml)}
- ${file(./resources/config/internet-gateway.yml)}
- ${file(./resources/config/nat-gateway.yml)}
- ${file(./resources/config/elastic-ip.yml)}
- ${file(./resources/config/route-private.yml)}
- ${file(./resources/config/route-public.yml)}
- ${file(./resources/config/security-groups.yml)}
- ${file(./resources/config/secrets.yml)}
- ${file(./resources/config/db-cluster.yml)}
functions: ${file(./resources/lambdas/functions.yml)}
custom:
scripts:
hooks:
'aws:deploy:finalize:cleanup': ${file(./scripts/post-deployment.js)}
appsync-simulator:
location: '.webpack/service'
rds:
dbName: ${env:RDS_PREFIX}_${env:STAGE}
dbHost: ${file(./scripts/get-host.js)}
dbUsername: ${env:RDS_USERNAME}_${env:STAGE}
dbDialect: ${env:DB_DIALECT}
dbPassword: ${env:DB_PASSWORD}
dbPort: ${env:DB_PORT}
webpack:
includeModules:
forceInclude:
- sequelize-cli
excludeFiles: ./**/*.test.js
AURORA:
VPC_CIDR: 10
DB_NAME: ${env:RDS_PREFIX}_${env:STAGE}
appSync:
name: ${env:NAME}-${env:STAGE}
schema: schema.graphql
logConfig:
level: ALL
excludeVerboseContent: false
serviceRole: AuthenticatedAppSyncServiceRole
authenticationType: API_KEY
mappingTemplatesLocation: resolvers/
mappingTemplates:
- ${file(./resources/mapping-templates/queries.yml)}
- ${file(./resources/mapping-templates/mutations.yml)}
dataSources:
- ${file(./resources/lambdas/datasources.yml)}
- ${file(./resources/rds/datasources.yml)}