-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathserverless.ts
75 lines (69 loc) · 1.66 KB
/
serverless.ts
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
/* eslint-disable @typescript-eslint/naming-convention */
import { exampleDomain } from "./src/api/example-domain";
import { SERVICE_NAME } from "./src/config/index";
import { resources } from "./resources";
import type { AWS } from "@serverless/typescript";
const serverlessConfiguration: AWS = {
service: SERVICE_NAME,
frameworkVersion: "2",
useDotenv: true,
package: {
individually: true,
},
custom: {
localstack: {
host: "http://localstack",
stages: ["local"]
},
ncc: {
minify: true,
excludeDependencies: true,
}
},
plugins: ["serverless-vercel-ncc", "serverless-offline", "serverless-localstack"],
provider: {
name: "aws",
runtime: "nodejs14.x",
apiGateway: {
minimumCompressionSize: 1024,
shouldStartNameWithService: true,
},
environment: {
AWS_NODEJS_CONNECTION_REUSE_ENABLED: "1",
NODE_PATH: "./:/opt/node_modules",
NODE_ENV: process.env.NODE_ENV!,
DYNAMODB_REGION: process.env.DYNAMODB_REGION!,
DYNAMODB_ENDPOINT: process.env.DYNAMODB_ENDPOINT!,
DYNAMODB_ACCESS_KEY_ID: process.env.DYNAMODB_ACCESS_KEY_ID!,
DYNAMODB_SECRET_ACCESS_KEY: process.env.DYNAMODB_SECRET_ACCESS_KEY!,
},
lambdaHashingVersion: "20201221",
iamRoleStatements: [
{
Effect: "Allow",
Action: [
"dynamodb:*",
"s3:*",
"lambda:*",
],
Resource: "*"
}
],
},
layers: {
NodeModules: {
path: "layers/modules",
name: "${self:service}-node-modules-${opt:stage, 'local'}",
description: "Shared node modules",
compatibleRuntimes: ["nodejs14.x"],
package: {
include: ["node_modules/**"]
}
}
},
resources,
functions: {
...exampleDomain
} as any,
};
export = serverlessConfiguration;