88 lines
2.2 KiB
YAML
88 lines
2.2 KiB
YAML
service: vanillameta-backend-api
|
|
|
|
#frameworkVersion: '2'
|
|
|
|
plugins:
|
|
- serverless-plugin-typescript
|
|
- serverless-offline
|
|
- serverless-latest-layer-version
|
|
- serverless-plugin-warmup
|
|
provider:
|
|
name: aws
|
|
runtime: nodejs14.x
|
|
lambdaHashingVersion: 20201221
|
|
## memorySize: 512 - 기본은 512
|
|
timeout: 10
|
|
layers:
|
|
- arn:aws:lambda:${opt:region, self:provider.region}:${AWS::AccountId}:layer:VanillaMetaApiNodeLibs:latest
|
|
stage: ${opt:stage, file(./config.serverless.yml):STAGE}
|
|
region: ${opt:region, file(./config.serverless.yml):AWS_REGION}
|
|
deploymentBucket: ${file(./config.serverless.yml):DEPLOYMENT_BUCKET}
|
|
environment:
|
|
STAGE: ${self:provider.stage}
|
|
NODE_ENV: ${self:provider.stage}
|
|
NODE_PATH: "./:/opt/node_modules"
|
|
# # DB_HOST: ${self:custom.DB_CONFIG.${self:custom.STAGE}.DB_HOST}
|
|
# # DB_USER: ${self:custom.DB_CONFIG.${self:custom.STAGE}.DB_USER}
|
|
# # DB_PASSWORD: ${self:custom.DB_CONFIG.${self:custom.STAGE}.DB_PASSWORD}
|
|
apiGateway:
|
|
binaryMediaTypes:
|
|
- '*/*'
|
|
|
|
|
|
custom:
|
|
# Enable warmup on all functions (only for production)
|
|
warmup:
|
|
- prod
|
|
STAGE: ${self:provider.stage}
|
|
DB_CONFIG: ${file(./config.serverless.yml):DB_CONFIG}
|
|
DOMAINS: ${file(./config.serverless.yml):DOMAINS}
|
|
customDomain:
|
|
domainName: ${self:custom.DOMAINS.${self:custom.STAGE}}
|
|
basePath: 'v1'
|
|
stage: ${self:custom.STAGE}
|
|
createRoute53Record: true
|
|
serverless-offline:
|
|
httpPort: 4000
|
|
host: '0.0.0.0'
|
|
serverlessPluginTypescript:
|
|
tsConfigFileLocation: './tsconfig.build.json'
|
|
webpack:
|
|
includeModules: true
|
|
|
|
package:
|
|
include:
|
|
- .env.dev
|
|
- .env.prod
|
|
- src/templates/**
|
|
exclude:
|
|
- node_modules/**
|
|
- .git/**
|
|
- test/**
|
|
- e2e/**
|
|
- nodemon.json
|
|
- README.md
|
|
# - src/**cd
|
|
|
|
|
|
functions:
|
|
app: # 람다함수 이름
|
|
handler: src/serverless.handler
|
|
events:
|
|
- http:
|
|
method: ANY
|
|
path: /
|
|
cors:
|
|
origin: '*'
|
|
headers: '*'
|
|
allowCredentials: true
|
|
maxAge: 86400
|
|
- http:
|
|
method: ANY
|
|
path: '{proxy+}'
|
|
cors:
|
|
origin: '*'
|
|
headers: '*'
|
|
allowCredentials: true
|
|
maxAge: 86400
|